如何将新提交的文件添加到git中的现有分支

时间:2017-12-03 06:21:36

标签: git github

如何将新提交的文件添加到git中的现有分支

之后我添加了&提交的新文件。现在我想将这些文件添加到现有分支

3 个答案:

答案 0 :(得分:1)

要从一个分支中选择提交并将其应用到另一个分支,您可以使用git cherry-pick <commit-id>。来自Ariejan Blog的示例:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

假设您已经在功能分支的提交62ecb3中编写了一些代码,这些代码现在非常重要。它可能包含其他人现在需要访问的错误修复或代码。无论是什么原因,您希望立即在主分支中提交62ecb3,而不是在功能分支中编写的其他代码。

这里有git cherry-pick。在这种情况下,62ecb3是樱桃,您想要选择它!

git checkout master
git cherry-pick 62ecb3

这就是全部。 62ecb3现在应用于主分支并在主服务器中提交(作为新提交)。 cherry-pick就像合并一样。如果git无法应用更改(例如,您遇到合并冲突),git会让您手动解决冲突并自行进行提交。

答案 1 :(得分:0)

我认为这是你的问题所在。您正在使用测试开发分支。

您正在使用分支,可能已添加 file1.txt file2.txt ,您已暂存并提交了它们。

现在你意识到你应该完成这项工作并在开发分支中提交。

因此,只需修复此问题,您就可以结帐到主分支并执行重置,直到您工作的文件为止。

例如:以下是您的git日志详细信息

wifi@wifi:/var/www/html/git_training$ git log
commit 11360c3a40697273c7a6bb742c47b00df928befa
Author: Channaveer Hakari <channaveer@wifidabba.com>
Date:   Sun Dec 3 13:11:41 2017 +0530

    Added test file

commit 0f3fed0b43c09b5fc3eee77dac4028bf0779e510
Merge: 825dd38 95f62fb
Author: Channaveer Hakari <channaveer@wifidabba.com>
Date:   Fri Dec 1 13:23:09 2017 +0530

    Merge branch 'issue1'

添加了测试文件,其哈希值 11360c3a4069727 ... 是您要进行软重置的提交,然后您需要将一个级别返回到该提交即提交合并分支'issue1',哈希值 0f3fed0b43c09b5fc3eee77

wifi@wifi:/var/www/html/git_training$ git reset --soft 0f3fed0b43c09

一旦你重置文件,直到您完成的提交将被取消注释,并将显示在暂存级别,如下所示。

wifi@wifi:/var/www/html/git_training$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   test.txt

现在您可以重置主分支,使文件位于本地,如下所示

wifi@wifi:/var/www/html/git_training$ git reset
wifi@wifi:/var/www/html/git_training$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    test.txt

nothing added to commit but untracked files present (use "git add" to track)

在此特定时刻,您可以隐藏文件,或者您可以直接更改为开发分支,除非您在切换分支时不会遇​​到任何问题,否则您必须存储文件然后切换,当您执行 git status 时,您将能够看到 test.txt 文件。现在你可以照常提交。

答案 2 :(得分:0)

我认为您只是希望您提交的更改并推送到特定分支,以便反映在另一个分支中。

如果是这样,只需将另一个分支拉入当前分支,如下所示:

  1. 切换到要将更改提取到的分支:

    git checkout

  2. 将另一个分支拉入本地分支:

    git pull

    这将执行以下操作:获取另一个分支。将另一个分支合并到您当前的分支。

  3. 如果没有,请进一步描述问题以获得更好的解决方案。 :)