Git的操作技巧记录

查看远程分支 和删除远程分支

查看远程分支:

git branch -a

删除远程分支  

git branch -r -d origin/branch-name  
git push origin :branch-name  

安装:

$ git config --global user.name "Your Name" $ git config --global user.email "[email protected]"

创建仓库:

$ mkdir learngit $ cd learngit $ pwd /Users/knight/learngit

$ git init

$ git add readme.txt

$ git commit -m "wrote a readme file"

$ git add file1.txt $ git add file2.txt file3.txt $ git commit -m "add 3 files."

时光穿梭机

$ git status

$ git diff readme.txt

$ git diff HEAD -- readme.txt

$ git status

$ git commit -m "add distributed"

$ git status

版本回退:

$ git log

$ git log --pretty=oneline #显示更加清楚.git log --help可以看文档

撤销修改:

$ vi readme.txt

$ git add readme.txt

$ vi readme.txt

$ git status

$ git checkout -- readme.txt #撤销更改

删除文件

$ git add test.txt $ git commit -m "add test.txt"

$ rm test.txt

$ git status

$ git rm test.txt #版本库中删除

$ git commit -m "remove test.txt"

创建与合并分支

$ git checkout -b dev #创建dev分支 Switched to a new branch 'dev'

#git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev

$ git checkout dev Switched to branch 'dev'

$ git branch #查看当前的分支,当前分支会显示一个* 号


$ git add readme.txt

$ git commit -m "branch test"

$ git checkout master # 切换到主分支

$ git branch

$ git merge dev #把分支合并到主分支

合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev #删除分支

$ git branch  #查看是否删除

解决冲突

$ git checkout -b feature1

#修改readme.txt最后一行,改为:

Creating a new branch is quick AND simple.

$ git add readme.txt $ git commit -m "AND simple"

$ git checkout master #切换到master

$ git add readme.txt $ git commit -m "& simple"

$ git merge feature1

$ git status

$ cat readme.txt

Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage. Git tracks changes of files. <<<<<<< HEAD Creating a new branch is quick & simple. ======= Creating a new branch is quick AND simple. >>>>>>> feature1

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改如下后保存:

Creating a new branch is quick and simple.

$ git add readme.txt $ git commit -m "conflict fixed"

用带参数的git log也可以看到分支的合并情况:

$ git log --graph --pretty=oneline --abbrev-commit * 59bc1cb conflict fixed |\ | * 75a857c AND simple * | 400b400 & simple |/ * fec145a branch test ...

$ git branch -d feature1 #删除分支

分支管理策略

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

$ git checkout -b dev

修改readme.txt文件,并提交一个新的commit:

$ git add readme.txt $ git commit -m "add merge"

$ git checkout master

$ git merge --no-ff -m "merge with no-ff" dev #合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

$ git log --graph --pretty=oneline --abbrev-commit #查看历史版本

git 的多人协作

$ git remote -v   #查看远程分支信息
$ git push origin master     #推送分支
$ git push origin dev       #推送dev分支

抓取分支

$ git clone [email protected]:michaelliao/learngit.git
$ git branch   $克隆下来只能看到master分支
$ git checkout -b dev origin/dev    #创建远程origin的dev分支到本地
$ git commit -m "修改远程的dev分支到本地,并做文件修改"
$ git push origin dev   #推送分支
$ git pull   #如果推送失败,就从远程dev 拉代码下来,修改再push 从而解决冲突问题

猜你喜欢

转载自blog.csdn.net/knight_zhou/article/details/106783179