清理正在开发中的功能的git分支

5

我有点晚来参加git聚会,但是我有一个简单的问题。

我正在开发三个功能实验,它们目前都在我的主分支上。这些功能可以称为postitsauthuploads

当我在我的主分支上执行git status时,我得到了一个列表,其中包含~10个“已更改但未更新”的条目和~15个“未跟踪文件”。所有这些条目都属于这三个功能实验之一。

我该如何将这些条目移动到三个新的功能分支中,以便我可以再次拥有干净的工作目录?

1个回答

6
$ git checkout -b postits     # create postits branch based on the current master
$ git add X Y Z               # add your parts, maybe with -p to get parts of files
$ git commit                  # commit to postits branch
$ git checkout -b auth master # make branch based on master (not including postits)
$ # etc

2
你可以执行 git checkout -b auth master - manojlds
@Dougal - 这是很久以前的事情了,但是...你如何创建一个只包含X、Y、Z的干净新分支?我的主分支里有大量的文件(已跟踪和未跟踪),当我像你说的那样创建了postits时,postits现在充满了其他我不需要的文件。当我尝试使用git checkout master时,它阻止了我。我该如何清理这些文件或者一开始就不复制它们呢? - sscirrus
我认为你可以使用 git stash -u 来完成这个操作(假设你的 git 版本比较新;否则,在执行 stash 前,需要使用 git add 添加所有未跟踪的文件)。首先使用 stash 命令将你的工作目录清空,然后你就可以干净地切换分支并执行 git stash applygit reset HEADgit add 命令,以便让每个分支都达到你想要的状态。 - Danica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接