Git:重新掌握大师。怎么办?

时间:2015-01-21 20:53:48

标签: git

这是我今天的工作流程:

  app: $ git branch
  global-nav-text
* master
  thrills-popUp
  app: $ git checkout thrills-popUp
Switched to branch 'thrills-popUp'
Your branch is up-to-date with 'origin/thrills-popUp'.
  app: $ git status
On branch thrills-popUp
Your branch is up-to-date with 'origin/thrills-popUp'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    ngrok
    simple-cors-http-server.py

nothing added to commit but untracked files present (use "git add" to track)
  app: $ git branch
  global-nav-text
  master
* thrills-popUp
  app: $ git checkout global-nav-text
Switched to branch 'global-nav-text'
Your branch is up-to-date with 'origin/global-nav-text'.
  app: $ git rebase master
Current branch global-nav-text is up to date.
  app: $ git checkout thrills-popUp
Switched to branch 'thrills-popUp'
Your branch is up-to-date with 'origin/thrills-popUp'.
  app: $ git status
On branch thrills-popUp
Your branch is up-to-date with 'origin/thrills-popUp'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    ngrok
    simple-cors-http-server.py

nothing added to commit but untracked files present (use "git add" to track)
  app: $ git branch
  global-nav-text
  master
* thrills-popUp
  app: $ git rebase master
Current branch thrills-popUp is up to date.
  app: $ git commit -am "Coda seems to have junked up my code. Specifically JS. The app wasn't pulling in both parks. Turns out that Coda (or something) changed 'append(newRow)' to 'append(ReturnedwRow).' There was an error from Coda after I rebased the global-nav-text branch to master. I updated the JS and all is working well now."
[thrills-popUp 737b135] Coda seems to have junked up my code. Specifically JS. The app wasn't pulling in both parks. Turns out that Coda (or something) changed 'append(newRow)' to 'append(ReturnedwRow).' There was an error from Coda after I rebased the global-nav-text branch to master. I updated the JS and all is working well now.
 1 file changed, 1 insertion(+), 1 deletion(-)
  app: $ git push --all
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 495 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To https://qfrank@bitbucket.org/uoix/14-03157-front-gate-sales-mat.git
   bb79a23..737b135  thrills-popUp -> thrills-popUp
  app: $ git status
On branch thrills-popUp
Your branch is up-to-date with 'origin/thrills-popUp'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    ngrok
    simple-cors-http-server.py

nothing added to commit but untracked files present (use "git add" to track)
  app: $ git push origin master
Everything up-to-date
  app: $ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
  app: $ git checkout thrills-popUp
Switched to branch 'thrills-popUp'
Your branch is up-to-date with 'origin/thrills-popUp'.
  app: $ git checkout thrills-popUp
Already on 'thrills-popUp'
Your branch is up-to-date with 'origin/thrills-popUp'.

我想我曾rebase将我的分支“合并”到master。我错了。

我假设(在rebase之后)当我运行git branch时,我只会看到master而没有分支。

这就是我所拥有的:

        o------o------o------o------o------o thrills-popUp
       /
-----o------o------o master
  \
   o------o------o global-nav-text

我最终删除了'global-text-nav'(但它仍然在我的远程仓库中)。

我的目的是将所有分支机构本地和远程合并到主服务器中。

如何在不搞乱任何事情的情况下这样做?

我一直在阅读pullmergerebasefetch等等。但我发现它有点令人困惑。

这是我想要完成的事情:

       o------o------o------o------o------o thrills-popUp
      /                                    \
-----o------o-------o-------o-------o-------o------o master
   \               /
    o------o------o global-nav-text

但是由于我在本地删除了“global-nav-text”,我可以这样做:

       o------o------o------o------o------o thrills-popUp
      /                                    \
-----o-------o-------o-------o------o-------o------o master

我不想下载远程仓库并将其与本地仓库混合使用。不要引起任何搞砸。

我想“干净地”合并剩余的分支,让我的远程仓库看起来像我的本地仓库。

另外,我看到我的远程仓库上的所有提交,但没有我在本地添加的新HTML,CSS和JS文件。我看到了上传的初始文件。

1 个答案:

答案 0 :(得分:2)

我认为git merge正是您所寻找的。

这应该做你想要完成的事情。

git pull
git fetch origin
git checkout master
git merge thrills-popUp
git merge global-nav-test
git push

它将首先获取远程存储库,以便您下载先前删除的分支,然后继续分支主服务器并将其他两个合并到主服务器中。然后将更改推送到远程仓库。