@Great-Chinese
2017-02-13T05:55:26.000000Z
字数 3019
阅读 909
分布式代码管理系统Git
# 安装gityum install -y epel-releaseyum install -y git# 安装完成后,设置用户名与邮箱git config --global user.name "melody"git config --global user.email "melody@melody0113.com"ls -la # 查看文件cat .gitconfig # 查看.gitconfig文件
mkdir /home/gitroot # 创建存储版本仓库的目录cd /home/gitrootgit init # 用这个命令初始化,让这个目录变成git的管理仓库Initialized empty Git repository in /home/gitroot/.git/ls /home/gitroot/.git/ # 自动生成一些文件vim 1.txt # 创建一个文件git add 1.txt # 先添加文件git commit -m "add new 1.txt" # 再提交到版本仓库# 查看文件状态git status# 恢复修改的文件git checkout -- 1.txt# 比较两个文件的不同git diff
git log # 查看所有提交git仓库的记录操作git log --pretty=oneline # 一行显示,更清楚git reset --hard 5be7 # 回退到某一个版本git reflog # 显示所有的版本
版本回退是文件恢复的一个操作项目
# 恢复到上一次提交的状态git checkout 1.txt# 如果修改1.txt文件,保存后,git add 1.txt了,没有commit.再想回到上一次提交的状态,可以使用git reset HEAD 1.txt# 然后再git checkout 1.txt
cp 1.txt 2.txt# 首先本地删除rm -f 1.txt # 本地删除1.txt文件git checkout 1.txt # 本地恢复1.txt文件# 然后再git仓库彻底删除git rm 1.txt # git仓库里删除1.txt文件git commit -m "delete 1.txt" # 提交后,就彻底删除了1.txt文件
# 首先在网址注册一个账号,创建自己的git,点repositories再点newhttps://github.com/# 自定义名字,比如叫studygit,studygit --> public --> creat repository# 添加keysettings --> SSH and GPG --> 把linux机器上的/root/.ssh/id_rsa.pub到这里 --> 保存即可# 如何查看/root/.ssh/id_rsa.pub的公钥ssh-keygen# 把本地仓库推送到远程仓库/ mkdir studygit --> cd studygit --> git init # 首先在本地仓库创建一个名字与远程仓库一样git remote add origin git@github.com:melodyyan0113/studygit.gitvim melody.txt --> git add melody.txt --> git commit -m "add melody.txt" # 然后在本地创建新文件git push -u origin master # 然后把本地的studygit推送到远程的studygitvim melody.txt --> git add melody.txt --> git commit -m "change melody.txt" # 第二次修改文件git push # 再次推送就直接git push
cd homegit clone git@github.com:melody0113/lanmp.gitcd lanmpvim lanmp.shgit add lanmp.shgit commit -m "chang a line ##1111"git push # 推送到远程服务git pull # 更新远程代码到本地
cd ../studygit/ # 首先进入studygit目录下git branch # 查看分支git branch melody # 创建分支git checkout melody # 切换到melody分支下,创建新的linux.txt,并提交vim linux.txt --> git add linux.txt --> git commit -m "add a newfile linux.txt"git checkout master # 再切换到master分支下,并没有发现linux.txtgit checkout melody # melody分支下才有linux.txt文件
# 把新的分支合并到旧的分支上去,git checkout master # 首先切换到要合并的分支上git merge melody # 把melody分支合并到master分支上# 如果master分支和melody分支同时对linux.txt进行了编辑,当合并时会提示冲突,需要先解决冲突才可以继续合并。# 解决冲突的方法是在master分支下,编辑linux.txt,改为melody分支里的linux.txt的内容。然后提交linux.txt,再 合并melody分支。git branch -d melody # 删除分支git branch -D melody # 强制删除
master分支是非常重要的,只有在线上发布代码时才用这个分支。 dev分支,专门用途开发的,只有当发布到线上之前,才会把dev分支合并到master 开发人员在dev的基础上再分支成个人分支,个人分支(在自己pc上)里面开发代码,然后再合并到dev分支
# dev分支合并bob分支的命令如下git checkout dev #先切换到dev分支git merge bob
# 当正在编辑文件时,发现另外一个分支里有bug,就可以用git stash保留现场,处理完bug后再来编辑文件vim 3.txtgit add 3.txtgit stash # 保留现场git status # 查看状态git stash list # 查看所有保留的现场git stash apply # 恢复现场git stash apply stash@{0} # 指定stash
cd ../studygit/# 取别名git config --global alias.ci commitgit config --global alias.br branchgit config --global alias.co checkoutgit config --global alias.lg "log --pretty=oneline"# 用别名查看相关的命令git lggit br devgit co devgit co mastergit brcat /root/.gitconfig # 别名的配置文件所在路径# 查看git别名使用命令git config --list |grep alias#查看log小技巧git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) reset' --abbrev-commit"#取消别名git config --global --unset alias.br