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
工具