Git进阶用法

Git进阶用法

服务器上的Git

一个远程仓库通常只是一个裸仓库--即一个没有当前工作目录的仓库. 因为该仓库仅仅作为合作媒介, 不需要从磁盘检查快照; 存放的只有Git的资料. 简单的说, 裸仓库就是你目录内的.git子目录内容, 不包含其他资料.

常用的Git

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
git merge --squash 分支名

--squash: 接受被合并的分支上的所有工作, 并将其压缩至一个变更集, 是仓库变成一个未发生合并的状态, 可以引入另外一个分支的所有改动或自己做改动, 然后再commit. 有点像rebase

# 从别的拉取
git pull <remote> <branchname>

# 临时拉取, 不保存远程仓库
git pull <url> [branchname]

# 如果不写branchname, 默认是HEAD

# 查看在branch1, 但不在branch2的提交, 等价于branch2..branch1
git log branch1 [-p] --not branch2

# 找出两个分支的公共祖先
git merge-base <branch1> <branch2>

# branch2与公共祖先的差别
git diff <branch1>...<branch2>

# 拣选操作, Git中的拣选类似于对特定的某次提交的变基. 它会提取该提交的补丁, 之后尝试将其重新应用到当前分支上
git cherry-pick <commit>

# 将Git项目打包, 注意不会包含.git文件夹
git archive master --prefix='project/' | gzip > `git describe master`.tar.gz
git archive master --prefix='project/' --format=zip > `git describe master`.zip

Git工具

-------------本文结束感谢您的阅读-------------