我如何在一个分支机构工作,但将我的工作交给另一个分支机构?

时间:2014-12-09 22:35:41

标签: git

想象一下以下场景。我在分支foo工作,并进行了一些未经修改的编辑。我想在分支wip/foo中提交我的编辑,而不在分支foo中提交或放弃工作。是否可能,我该怎么做?

进度

我最后编写了以下脚本:

#! /bin/bash

# usage: wipscript.sh repo file branch
#
# For example,
# wipscript.sh ~/repo file.sh development

repo=$1
file=$2
branch=$3

cd $repo
hv=`git rev-parse HEAD`

branch_present=`git branch | grep wip/$branch`
# echo $branch_present
# echo "------"

git add $file
git commit -a -m $file

if [[ $branch_present == *"wip/$branch"* ]]
then
    # echo "in then"
    git checkout wip/$branch;
else
    # echo "doing else"
    git checkout -b wip/$branch;
fi

git checkout $branch -- $file
git commit -am $file

git checkout $branch
git reset --soft $hv

# echo "Finished."

2 个答案:

答案 0 :(得分:3)

您可以使用存储机制:

git stash
git checkout wip/foo
git stash pop

答案 1 :(得分:2)

你甚至不需要藏匿它们。

未提交的更改不存在于任何分支中。只需更改分支并提交:

git checkout wip/foo
git commit

如果wip/foo尚不存在,请使用git checkout -b wip/foo instead