2014-01-09 104 views
2

Backstory:将git文件夹与git文件夹合并

基本上,我被要求对项目做一些重大更改。我用git clone来开始我的参与。我创建了一个新文件夹并将主项目目录中的所有代码复制粘贴到新文件夹中。这个新文件夹没有跟踪我的更改(显然)。

我有一个最新的网站文件夹和一个文件夹不是最新的,但有我所有的更改。无论如何要合并这些文件夹来保留我所做的更改以及其他人所做的更改吗?

我担心,如果我更新主项目文件夹,我可能会意外地覆盖他们的更改而不意识到它。

我正在考虑使用Meld,但我愿意提供建议。

回答

3
  • 克隆原始存储库。

    ​​
  • 结帐的承诺,当你开始你的工作

  • 在这一点上创建一个新的分支

    git checkout -b my_work $sha1 
    
  • 添加您的工作作为一个新的提交在新的分支

    复制
    cp -r /path/to/untracked/dir . 
    git add . 
    git commit -am 'fixed nasty bug' 
    
  • 可选有一个看看你的变化

    git show 
    
  • 结账主枝

    git checkout master 
    
  • 合并你新的分支到可能发生的主要分支

    git merge my_branch 
    
  • 解决任何冲突

    git mergetool -t meld 
    

(而不是meld你可以使用任何你喜欢的其他工具。我会建议kdiff3。)

+0

非常感谢您的帮助。我会马上尝试。但我有两个问题。 1)查看提交历史的最佳方式是什么,以便我可以找到我的出发点和2)$ sha1参数的含义是什么? –

+0

克隆完成'git log'或'gitk'后。这会告诉你当前分支的历史。每个提交都由一个40位的sha1提交ID标识。如果您能够找到正确的提交,请使用其ID作为“$ sha1”。 - 尽量记住你何时复制你的代码和从哪个分支。寻找正确的提交是至关重要的。 - 使用上面的“git show”步骤来验证所显示的变化确实是由您完成的变化。如果还有其他更改,您很可能选择了错误的提交。 – michas