默认情况下如何git pull从git@source.com:...存储库生成并git push到存储库?git@target.com:...
.hg/hgrc在 Mercurial 中,我使用以下内容创建:
[paths]
default = ssh://hg@source.com/...
default-push = ssh://hg@target.com/...
Run Code Online (Sandbox Code Playgroud)
在 Git 中设置相同的默认行为的方法是什么?
git 中几乎是一样的。每个存储库都有一个.git/config文件,其中应该有类似这样的内容:
[remote "origin"]
url = git://path/to/your/repo
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)
您不必手动添加它们,有很多命令可以帮助您。Git SCM 书籍是一个好的开始。
要设置默认的前一个分支,您只需键入:(git branch --set-upstream-to YOUR_REMOTE_NAME/YOUR_BRANCH_NAME当使用 git >= 1.8.0 时)
在 git 中,遥控器位于各个[remote "<name>"]部分中。当您克隆某些东西时,初始遥控器是origin,因此通常是要使用的遥控器。获取 URL 为url,推送 URL 为pushurl。您还需要fetch一行(或多行)来引入分支名称。
通常,您会在 中看到.git/config类似以下内容:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://...
Run Code Online (Sandbox Code Playgroud)
将 url 更改为git://source并添加pushurl = git://target(您可以使用git config命令或 来执行此操作,git remote或者只是运行git config -e以在文件上调出常规编辑器)。
分支需要有一个“上游”集(分为两部分,remote和merge)以使它们“跟踪”“远程分支”。通常,由于遥控器已命名,因此origin您可以设置branch.master.remote为origin和branch.master.mergeto master,例如。(当你基于远程分支创建本地分支时,在任何稍微现代的 git 版本中,它都会将其设置为“跟踪”。)
一般来说,您还应该配置push.default除 git 1.x 默认值之外的其他值;simple可能是避免事故的最佳方法。
请注意,如果您习惯使用 Mercurial,hg pull则与 最为相似git fetch,而不是git pull; hg pull -u有点接近git pull,但我建议您训练自己使用git fetch而不是git pull(即使您不习惯 Mercurial,实际上:-))。它还需要对 hg 和 git 处理分支的不同方式进行一些调整(hg 有一个用于分支的单个全局名称空间,另一个用于书签的单个全局名称空间;git 有每个远程的“远程分支”名称空间,而本地分支则更多)就像 hg 本地书签。)
| 归档时间: |
|
| 查看次数: |
6143 次 |
| 最近记录: |