Git/高级
本教程介绍了一些 Git 更高级的多用户功能。对于单用户功能,请参阅单开发者基础。
检出远程 Git 仓库的一种方法是
$ git clone ssh://[email protected]:port/remote/path/to/repo
现在你拥有了该仓库的本地副本。你可以使用在单开发者基础中介绍的所有命令。完成后,你可能希望再次将你的更改签入中心仓库。
首先,你需要执行 git pull
操作,以防仓库在此期间发生了更改,你可能需要将你的分支与仓库合并。合并后,你可以使用 git push
将你的更改发送到仓库
$ git pull /remote/path/to/repo
或者
$ cd repo $ git pull
然后
$ git push
git clone
也适用于本地仓库
$ git clone /local/path/to/repo
你可能还想检出远程分支,对其进行操作,然后签入你的本地分支。首先,你可能需要知道哪些分支可用
$ git branch -r $ git remote show origin
获取远程分支(拉入本地分支)
$ git pull origin remoteBranchName:localBranchName
更新远程分支(将本地分支推入远程分支)
$ git push origin localBranchName:remoteBranchName
这假设你有一个名为“origin”的远程仓库。你可以使用 git remote
来检查这一点。
如果你想从远程分支创建本地分支,请使用
$ git checkout -b mylocalbranch origin/maint
删除远程分支的操作如下
$ git push origin :remoteBranchNameToDelete
以下命令同步分支 $ git fetch origin
Git 允许你指定一些标签,以便专注于历史记录中的某些内容[1]。
要添加带注释的标签,请执行以下操作
$ git tag -a mytag
或者
$ git tag -a mytag my-branch
要添加轻量级标签,请执行以下操作
$ git tag mytag
要强制覆盖现有标签,请执行以下操作
$ git tag -f mytag HEAD
要显示以前的标签,请执行以下操作
$ git tag
标签可以被推送到远程仓库,方法是
$ git push --tags
要将仓库定位到标签,请执行以下操作
git checkout tags/0.3.4
标签和分支都指向一个提交,因此它们都是特定哈希的别名,通过使用它们可以节省时间,因为不需要输入哈希。
标签和分支之间的区别在于,分支始终指向开发线顶端,并且在推送新的提交时会更改,而标签不会更改。因此,标签更适合用于“标记”特定版本,并且该标签将始终停留在该版本上,通常不会更改。
实际上,标签用于指定软件版本控制,并且以数字命名(例如:v1.0.2)。
要为 origin 和 master 之间的更改创建纯文本补丁(系列),请使用
$ git format-patch origin/master
要应用提交的纯文本补丁(系列),请使用
$ git apply --stat P1.txt #see the stats, how much will the path change? $ git apply --check P1.txt #check for problems $ git am < P1.txt #apply the patches in the correct order