【问题标题】:Cloning a branch without merging main branch克隆一个分支而不合并主分支
【发布时间】:2012-01-10 14:23:53
【问题描述】:

有时我希望能够从存储库中提取(通过克隆)。但是当我这样做然后切换到本地分支以拉入远程分支时,git 假设我想要获取主分支并集成它。我该如何避免这种情况?我确信我可以通过一系列不同的操作/命令来实现我想要的。

当我想在辅助机器上的特定分支上工作时,我通常会遇到这种情况。

更新
我在只想在实验分支上工作的辅助机器上运行以下命令

git clone http://somewhere.com/something.git    
git branch experiment    
git checkout experiment   
git pull origin experiement    

【问题讨论】:

  • 您能否显示您正在执行的确切命令,以及究竟出了什么问题?
  • 同意。需要一个例子。简单地克隆和更改分支不应强制任何自动“集成”。

标签: git branch git-branch


【解决方案1】:

每个分支都需要指向某个提交。如果您不指定任何内容,git branch 会将新分支指向与 HEAD 相同的提交。

您希望分支指向origin/experiment

git clone http://somewhere.com/something.git
cd something
git branch experiment origin/experiment
git checkout experiment

或者……

git clone http://somewhere.com/something.git
cd something
git checkout -b experiment origin/experiment

或者,因为 git 足够聪明,可以知道在这种情况下你要做什么......

git clone http://somewhere.com/something.git
cd something
git checkout experiment

所有这些都将做同样的事情(创建指向origin/experiment 的新分支)。他们还将分支设置为 track origin/experiment,因此推送和拉取将在该远程分支之间进行。

【讨论】:

  • 这是否允许您在不输入远程分支名称的情况下使用较短的语法进行推送和拉取?
【解决方案2】:

如果你只想从一个或多个遥控器获取分支而不合并任何东西,你可以做一个

git fetch --all

git fetch [remote]

我通常只是打开 git gui 并单击 remotes>fetch>[remote] 然后我使用

gitk --all 

查看远程分支上做了什么。
如果我愿意,我可以合并... git pull 表示 fetch+merge

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    相关资源
    最近更新 更多