如何在多个不同的分支上工作,我可以在它们之间轻松切换?

Kin*_*rog 7 svn git

有没有办法处理同一个文件,但在GIT中的不同功能/分支?

我确定有办法,但最简单的方法是什么?
我不想隐藏我的更改,因为这很麻烦.

通过SVN,我能够在2个不同的分支上工作,作为2个不同的实体,没有任何干预,并且很容易在两者之间切换.

Cod*_*ard 13

使用git worktree.

git worktree

Git worktree于2007年在contribgit repo 的文件夹下引入并被调用new-workdir.

在git V2.5中,它被命名worktree,它允许您在不同的文件夹中拥有相同存储库的多个实例.

例如:

git worktree add <second path>
Run Code Online (Sandbox Code Playgroud)

将在您的计算机上创建另一个文件夹,允许您同时在不同的分支上工作.


如果要删除工作树,请删除该文件夹,然后执行git worktree prune将删除工作树引用.

prune
修剪工作树信息$GIT_DIR/worktrees.

创建新的工作树

# create new branch inside the worktree folder 
git worktree -b <branch name> <path>
Run Code Online (Sandbox Code Playgroud)

删除工作树

# do your code and once you have done 
# commit, push and now you can delete your folder
rm -rf <path>

# Tell git to remove the workdir copy
git worktree prune
Run Code Online (Sandbox Code Playgroud)

更新 在即将发布的版本(git 2.17+)中,a git worktree delete将作为删除工作树的新命令公开.

列出工作树

在此输入图像描述


如果您稍后使用rebase:

  • 注意:( 自Git 2.7起)
    您也可以使用它git rebase [--no]-autostash.