Git 常用命令使用方法

版本控制系统是为懒人准备的, 它让懒人们比那些善于备份文档的勤劳人拥有更干净的文件系统以及更多的可以活着的时间. 那么一个程序猿, 一个哎偷懒的程序猿有什么理由不使用它呢.

简单命令

查看分支

1
2
3
4
5
6
7
8
# 查看创建的
git branch -l

# 查看远程分支
git branch -r

# 查看所有分支
git branch -a

创建分支

1
git branch <分支名>

切换分支

1
git checkout <分支名>

创建并同时切换分支

这条命令同样可以切换到远程分支

1
git checkout -b <分支名>

回滚

1
git reset [版本号]

回退操作

1
2
3
4
5
# 如果修改已经加入暂存区的话
# 也可以取消合并操作
git reset --hard [版本号] && git clean -xdf
# 没有加入缓存区
git checkout . && git clean -xdf

分支合并

1
2
3
4
5
6
7
8
9
10
11
12
13
# 如果要将开发中的分支(develop), 合并到稳定分支(master)
# 首先切换的master分支
git checkout master

# 然后执行合并操作
git merge develop

# 如果有冲突, 会提示你, 然后查看冲突文件
git status

git add .

git commit -m "备注" *

提交分支到远程仓库

1
git push origin develop

获取远程主机上的修改

1
2
3
4
5
# 获取所有
git fetch <远程主机名>

# 获取某个
git fetch <远程主机名> <分支名>

设置默然push, pull提交分支

1
git branch --set-upstream-to=origin/develop

取消对master的跟踪

1
git branch --unset-upstream master

分支衍合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 分支衍合和分支合并的差别在于, 分支衍合不会保留合并的日志, 不留痕迹
# 而分支合并则会保留合并的日志
# 要将开发中的分支(develop), 衍合到稳定分支(master)

# 首先切换的master分支
git checkout master

# 然后执行衍和操作
git rebase develop

# 如果有冲突, 会提示你, 然后查看冲突文件
git status

git add .

# 所有冲突解决后, 提交更改
git rebase --continue

删除分支

1
2
3
4
5
git branch -d <分支名>

# 如果该分支没有合并到主分支会报错
# 可以用以下命令强制删除分支
git branch -D <分支名>

子项目

1
2
3
4
# 添加子项目
git submodule add 仓库地址 路径
# 更新子项目
git submodule update --init --recursive