先来张大图
每天都使用git,但是好记性不如烂笔头,写下来,以后忘了可以翻出来看看。
OK,言归正传!
下面是几个专有名词:
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
一、新建代码库
1 | # 在当前目录新建一个Git代码库 |
二、配置
Git的设置文件为.gitconfig
,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
1 | # 显示当前的Git配置 |
三、添加/删除文件
1 | # 添加指定文件到暂存区 |
四、代码的提交
1 | # 提交暂存区到仓库区 |
五、分支
1 | # 列出所有本地分支 |
六、远程同步
1 | # 下载远程仓库的所有变动 |
七、撤销
1 | # 恢复暂存区的指定文件到工作区 |
八、重要命令详解
1、git pull
取回远程主机某个分支的更新,再与本地的指定分支合并。
1 | git pull <远程主机名> <远程分支名>:<本地分支名> |
比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。
1 | git pull origin next:master |
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
1 | git pull origin next |
上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
1 | git fetch origin |
2、git push
用于将本地的分支推送到远程主机
1 | git push <远程主机名> <本地分支名>:<远程分支名> |
注意分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。
如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
1 | git push origin master |
上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。
1 | git push origin :master |
上面命令表示删除origin主机的master分支。
如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。
1 | git push origin |
上面命令表示,将当前分支推送到origin主机的对应分支。