Git学习记录(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_26546385/article/details/79117429

1、分支管理

1)创建合并分支基本命令

查看分支:git branch
创建分支:git branch [name]
切换分支:git checkout [name]
创建+切换分支:git checkout -b [name]
合并某分支到当前分支:git merge [name]
删除分支:git branch -d [name]
如果要丢弃一个没有被合并过的分支,可以强行删除:git branch -D [name]

用git log –graph –pretty=oneline –abbrev-commit 命令可以查看分支合并情况

用git merge命令合并分支时用–no-ff参数,表示禁用Fast forward,当删除分支后依旧能看到合并历史。

2)修改bug

当手头工作未进行完需要改另一个bug时,可git stash命令将当前工作存档($ git stash)。切换到需要修改bug的分支(如master分支,$ git checkout master),创建bug分支($ git checkout -b bug-1),修改完bug以后($ git add readme.txt $ git commit -m “fix bug 1”),切换到master分支完成合并($ git checkout master $ git merge –no-ff -m “merged bug fix 101” bug-1),删除bug分支($ git branch -d bug-1)。此时回到原工作分支上继续工作(例dev分支,$ git checkout dev),用git stash list命令查看之前存的工作,然后恢复工作,一种方法是用git stash apply命令恢复,然后用git stash drop命令来删除stash中的内容;另一种方式是用git stash pop命令恢复,恢复的同时把stash内容也删了。你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用$ git stash apply stash@{0}命令。

3)多人协作

  1. 查看远程库信息,使用git remote -v;
  2. 首先,可以试图用git push origin branch-name推送自己的修改;
  3. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull抓取远程的新提交试图合并;
  4. 如果合并有冲突,则解决冲突,并在本地提交;
  5. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
  6. 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。

标签管理

  • 命令git tag [name]用于新建一个标签,默认为HEAD,也可以指定一个commit id;

  • git tag -a [tagname] -m “blabla…”可以指定标签信息;

  • git tag -s [tagname] -m “blabla…”可以用PGP签名标签;

  • 用git tag命令可以查看所有标签。

  • 命令git push origin [tagname]可以推送一个本地标签;

  • 命令git push origin –tags可以推送全部未推送过的本地标签;

  • 命令git tag -d [tagname]可以删除一个本地标签;

  • 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,然后用命令git push origin :refs/tags/[tagname]删除远程标签。

远程仓库

使用github或码云时,先fork别人的项目到自己的账号上,再克隆到本地仓库。完成修改后推送到自己远程仓库,可以先别人发起pull request。
若使用码云的话,需配置码云的ssh key以及注意不要用origin做远程库名,因为会和github的冲突,最好把github的远程库名也改掉。

自定义Git

1)忽略某些文件,可以通过编写.gitignore文件实现;
2)用$ git config –global alias.[修改后的名字] [修改前的名字]命令可以给命令改别名,加上–global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用,删除别名需要到每个仓库的Git配置文件.git/config文件中删除。

详细的介绍在廖雪峰教程网站上,本文为学习此教程过程中的总结,仅供个人参考。

猜你喜欢

转载自blog.csdn.net/sinat_26546385/article/details/79117429