将本地Git分支推送到原点

tak*_*hin 30 git

我正在研究两台机器和第三台机器上的原始仓库(原点可以从其他两台进入,机器1和机器2之间没有直接连接).

# Machine 1
$ git branch
  master
* testing
  cms

# Machine 2
$ git branch
* master
Run Code Online (Sandbox Code Playgroud)

现在,我想将testing分支推送到原点并将其放在machine2上,因此最终的效果将是:

# Machine 2
$ git branch
* testing
  master
Run Code Online (Sandbox Code Playgroud)

我试过了:

# Machine 1
$ git push origin testing

# Machine 2
$ git pull origin testing                # bunch of merge conflicts
$ git checkout -b testing origin/testing # errors too
Run Code Online (Sandbox Code Playgroud)

目前的状态是:

# Machine 1
$ git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/testing
Run Code Online (Sandbox Code Playgroud)

怎么做?

我的下一个问题可能是:如何删除origin/testing分支?

Bru*_*uno 23

git pull尝试git fetch(不会尝试与machine2上的当前分支合并,并导致冲突),而不是使用(取出和合并)

# Machine 1
$ git push origin testing

# Machine 2
$ git fetch origin testing
$ git checkout -b testing origin/testing
Run Code Online (Sandbox Code Playgroud)


aba*_*arr 16

您已成功将测试分支推送到原点,因此现在您只需要将分支转到machine2.

不确定机器2上的回购状态,所以我会删除目录(或者创建一个新的目录),然后在Machine2上克隆回购和结帐测试......

所以在Machine2中的空目录(新的或干净的):

$ git clone git@github/somewhere
$ git branch
* master

$ git checkout testing
# ...
# something about getting and switching
# ... 

$ git branch
* testing 
master
Run Code Online (Sandbox Code Playgroud)