代码之家  ›  专栏  ›  技术社区  ›  Always_a_learner

如何在git branch中重新提交相同的更改

  •  0
  • Always_a_learner  · 技术社区  · 7 年前

    我现在使用git已经有一周了。我在一个功能分支工作,有时当我将代码推入分支时,它会显示出与开发分支的许多冲突。所以这次我遵循以下步骤来避免工作中不必要的冲突和问题:(

    1. 吉特abc分行

    2. git结帐abc

    3. 做了我的工作
    4. 暂存
    5. git pull源代码开发
    6. 有冲突吗
    7. 解决了冲突,还解决了git隐藏问题
    8. git commit-m'message'//不知道如何合并不属于冲突的已删除行
    9. git推送原点

    现在,这些步骤导致提交了两个文件,一个是我解决冲突的文件,另一个是我工作的文件。分别说File1和File2。

    现在我需要重新推送我的代码,但只推送文件2,即我工作过的文件,而不是我解决冲突的文件。

    但git状态不会显示任何内容,因为我已经完成了所有提交和推送操作。 此外,在一些自动合并过程中,必要的代码会从文件1中删除。怎么把它带回来?

    如果有任何帮助,我们将不胜感激?

    因为我还在学习GIT,所以任何解释都会对我和其他人有所帮助。

    我用的是BITBUCKET。

    谢谢

    2 回复  |  直到 7 年前
        1
  •  1
  •   Jamie Bisotti    7 年前

    对于#1&#2:它们可以结合在一起-- git checkout -b abc

    对于#4:你为什么藏起来?我相信你应该在这里做出改变。

    对于#6:冲突在哪里?在新创建的功能分支上?这应该是不可能的。

    典型的工作流程如下:

    1. 确保主分支(主分支、开发分支或其他分支)是最新的。我会用 主人 举个例子。
      • git checkout master
      • git fetch
      • git rebase origin/master
    2. 创建并签出要素分支
      • git checkout -b featureBranch
    3. 做出改变
    4. 将更改提交到 特色分店 (理想情况下,这将进行多次,而不是一次大型提交)
      • git add . #这只是一个例子;有选择地添加,视情况而定
      • git commit
    5. 推动本地 特色分店 远程查看或其他什么
      • git push origin featureBranch
    6. 准备就绪后(如审查和批准),合并 特色分店 主人
      1. 重基 特色分店 最新消息 主人
        • git checkout featureBranch
        • git fetch
        • git rebase源代码/主代码
      2. 确保 主人 是最新的
        • 切换到主分支
        • git rebase源代码/主代码
      3. 合并
        • git merge --no-fast-forward featureBranch

    这个工作流程,通过重新定基 特色分店 合并前&使用非快进合并,将导致一个线性的,但描绘的,历史的 主人 .

    祝你好运

        2
  •  1
  •   marilia15    7 年前

    为了扩展前面的答案,我想补充一句:Git stash会将您的更改保存在“口袋”中,如果它们还没有准备好提交。但是你的改变已经准备好了,所以没有必要。

    关于你在之前的评论中提出的问题(我没有足够的声誉在评论中回答你):git pull用远程存储库中的更改更新你的本地存储库和工作目录,是git fetch然后git merge的快捷方式。但是,由于git merge在历史上有一些缺点,因此使用git fetch+git rebase可能会很有用。

    Git rebase在本地工作,因此它可以以类似的方式用于Git merge,但不能用于Git pull!。很多答案比我更能解释git rebase,我希望能有所帮助。