Modified files in a git branch are spilling over into another branch

后端 未结 5 1815
后悔当初
后悔当初 2020-11-22 09:01

I am working on a git repository with a master branch and another topic branch. I have switched to topic branch and modified a file. Now, if I switched to master branch that

相关标签:
5条回答
  • 2020-11-22 09:16

    The modified files are not put in the repository until you add and commit them. If you switch back to your topic branch and commit the file, then it won't appear on the master branch.

    0 讨论(0)
  • 2020-11-22 09:21

    This is the default behaviour of git.

    You can use -f flag to checkout to do "clean checkout" if you like.

    0 讨论(0)
  • 2020-11-22 09:27
    • It is not like git branches are dependent on each other but also they do not have a complete code base separately for each branch either.
    • For each commit, Git stores an object that contains a pointer to the changes. So each branch points to its own latest commit and HEAD points to the branch currently you are in.
    • When you switch the branch, the HEAD pointer points to that particular commit of the branch. So if there are modified files, the default behavior is to copy over them.

    You can do the following things to overcome this issue.

    1. Use -f option to ignore the changes.

    If you want to save the changes:

    1. Commit the changes locally in the same branch and then switch the branch.
    2. Use git stash, switch the branch, do your work, switch back to the original branch and do git stash apply.
    0 讨论(0)
  • 2020-11-22 09:35

    If you want to temporarily store your changes to one branch while you go off to do work on another, you can use the git stash command. It's one of the amazing little unsung perks of using git. Example workflow:

    git stash #work saved
    git checkout master
    #edit files
    git commit
    git checkout git-build
    git stash apply #restore earlier work
    

    git stash stores a stack of changes, so you can safely store multiple checkpoints. You can also give them names/descriptions. Full usage info here.

    0 讨论(0)
  • 2020-11-22 09:37

    Why is that the file is shown as modified in master branch even though it was modified in git-build branch?

    The key to remember is that the file was not modified in the git-build branch. It was only modified in your working copy.

    Only when you commit are the changes put back into whichever branch you have checked out

    0 讨论(0)
提交回复
热议问题