Git的基本用法

关于Git的用法网上各种手册、各种教程……多如牛毛,我就不废话了,这里主要是写一下我自己觉得容易忽略但是确实很好用的一些技巧。

master跟origin的含义

master一般不会搞错,就是默认的一个分支名字;而origin是默认的远程仓库名称,可以用git remote -v查看。

fetch与pull的区别

两者主要的区别是fetch只是取回相应分支的代码,而pull是在fetch的基础上还有一个merge的动作,即取回代码并与当前工作分支合并。保险起见我一般都用fetch。

git fetch <远程主机名> <远程分支名>
git pull <远程主机名> <远程分支名>:<本地分支名>

push到底push了些什么

push一般都会省略一些东西,所以之前我也是迷迷糊糊。还有,分支推送顺序的写法总是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。

git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master
git push origin master:master # 等价于上一条

获取分支

git branch <分支名> # 创建本地分支
git clone <远程主机地址> -b <远程分支名>
git fetch origin :<分支名> # 从远程主机获取分支,如果本地不存在该分支则创建一个新分支

删除分支

分支分为本地分支和远程分支。

git branch -d <本地分支名> # 如果该分支没有被merge则会失败
git branch -D <本地分支名> # 强制删除
git push origin :master # 通过推送空分支来删除远程分支
git push origin --delete master # 等价于上一条

重命名分支

git branch -m <本地旧分支名> <本地新分支名>
# 删除远程分支名如下
git fetch origin :oldname
git branch -m oldname newname
git push origin :oldname
git push origin newname