远程仓库

1
2
3
4
克隆远程服务器端的代码到本地代码仓库
git clone [url]
将本地代码仓库添加到远程仓库
git remote add [shortname] [url]

更新提交

文件状态: 已跟踪、未跟踪,已跟踪指纳入版本控制的管理的文件,该种文件已经纳入缓冲区,它可又有两种状态为未修改和已修改。而未跟踪文件指未纳入缓冲区的文件。

![git_state][images/git_state.png]

1
2
3
4
5
6
7
8
9
10
11
12
跟踪某个文件
git add <filename>
.选项会把已修改的和添加的文件放入缓冲区不包括被删除文件
git add .
-u会把更新的文件和被删除文件放入缓冲去区
git add .-u
-A提交所有变化
git add -A
提交更新并加上提交注释
git commit -m
修改最后一次提交,比如发现漏掉了几个文件没有加,或者提交信息写错了
git commit --amend

当分支与master冲突的文件是.mo二进制文件时,此时我们没法手动rebase,那么我们可以使用如下操作

1
2
3
git rebase master
git add -u
git rebase --continue

和我们正常的rebase是一样的。

显示信息

1
2
3
4
5
6
7
8
确定文件状态
git status
查看提交历史,会显示commit id等信息,对于版本回退会有很大帮助,退出按q键
git log
--graph 选项可以以一种便于查看的方式显示提交信息
git log --graph
查看具体修改了什么地方
git diff

分支

1
2
3
4
5
6
7
8
9
10
11
12
创建并切换分支
git checkout -b <branchname>
合并分支一般在master上合并其他分支
git merge <branchname>
删除分支
git branch -d <branchname>
删除远程分支
git push [远程名] :<branchname>
衍合
git rebase <target branchname>
等价于(master为target branchname)
git rebase master server

撤销

1
2
3
4
5
6
回退到某次提交(即HEAD指针回到某个状态,之前的commit都没有变化)
git reset <commit id>
或者
git reset --hard <commit id前6位>
回退到某次提交,相当于一次新的commit
git revert <commit id>

保持分支同步更新

克隆操作会自动使用默认的master 和origin 名字。

1
2
3
4
5
6
到远程仓库中拉取所有你本地仓库中还没有的数据,但不会自动合并
git fetch [remote-name]
到远程仓库中拉取所有你本地仓库中还没有的数据,并自动合并
git pull
推送数据到远程仓库
git push [remote-name] [branch-name]