Prevent local changes getting pushed in Git

前端 未结 4 1526
灰色年华
灰色年华 2020-12-04 07:06

I have cloned a repository and the master branch in my repo is tracking origin/master. I created a work branch and changed some config

4条回答
  •  旧巷少年郎
    2020-12-04 08:06

    One way to solve this is to "cherry-pick" each change from your work branch into master before you push upstream. I've used a technique where I include a word like NOCOMMIT into the commit message for local changes only, and then use a shell script something like this:

    #!/bin/sh
    
    BRANCH=`git branch | grep ^\\* | cut -d' ' -f2`
    if [ $BRANCH != "master" ]; then
      echo "$0: Current branch is not master"
      exit 1
    fi
    
    git log --pretty=oneline work...master | grep -v -E '(NOCOMMIT|DEBUG):' | cut -d' ' -f1 | tac | xargs -l git cherry-pick
    

    This cherry-picks each change that is not marked with NOCOMMIT (or DEBUG) into the master branch.

提交回复
热议问题