1. 常用指令
1.1 add
git add file1 file2 …
add后跟上需要加到暂存区的文件,用空格隔开。
add .(add后加空格和.)表示把当前目录下所有文件加入暂存区
1.2 commit
Git commit -m [message]
提交暂存区的文件到仓库,其中message是一些备注信息
Git commit file1 file2 … -m [message]
提交暂存区的指定文件到仓库
Git commit -a
-a 参数设置修改文件后不需要执行 git add 命令,直接来提交
1.3 pull
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull从远程获取代码并与本地合并
git pull origin master:brantest
将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并
git pull origin master
如果远程分支是与当前分支合并,则冒号后面的部分可以省略
1.4 remote
git remote add [shortname] [url]
添加远程版本库。shortname 为本地的版本库,例如:
# 提交到 Github
$ git remote add origin git@github.com:tianqixin/runoob-git-test.git
$ git push -u origin master
其他相关命令:
git remote rm name # 删除远程仓库
git remote rename old_name new_name # 修改仓库名
1.5 push
git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>
git push origin master
将本地的 master 分支推送到 origin 主机的 master 分支。
1.6 分支管理
Git checkout branchname
切换到branchname分支
Git branch branchname
创建branchname分支
git checkout -b branchname
创建名为branchname的新分支并立即切换到该分支下,从而在该分支中操作。
Git checkout -d branchname
删去branchname分支
Git merge branchname
将branchname分支与当前分支合并
2. 版本树
- Object Graph(每个commit会新建一个节点),箭头指向父版本
- Git不会重复存储未发生变化的文件
- 一个版本的父版本可能有0、1、2个,子版本可以有任意多个
- git在进行merge时会涉及三个版本,需要merge的两个版本以及其公共父版本
- git在merge时若出现版本冲突,需要人工解决
- git远程协作时为了保护,服务器强制用户在更新版本前需要把服务器上的版本下载到本地,与本地的进行merge之后才能提交,避免与其它用户更新的版本冲突