Prevent local changes getting pushed in Git

前端 未结 4 1510
灰色年华
灰色年华 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 07:49

    What you need is a .gitignore file and add all your config file inside the .gitignore file.

    Once your .gitignore file is ready you might need to removed your config files from the Cache

    Here's the command:

    (Assume you use linux)
    vi .gitignore
    //Add all your config file inside
    
    //run the following command to remove your config file from GIT cache if your config files is already track by GIT
    
    git rm --cached myconfig.php
    
    0 讨论(0)
  • 2020-12-04 07:54

    If you want to prevent committing (therefore also pushing) these local config files, you could use git update-index --assume-unchanged. Files marked with this flag will be assumed to never change (until you reset the flag with --no-assume-unchanged)

    0 讨论(0)
  • 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.

    0 讨论(0)
  • 2020-12-04 08:12

    If the files are not already being tracked, you can add them to a .gitignore file to your local repository, otherwise you will need to use git update-index --assume-unchanged like Mauricio said.

    Following is more information about .gitignore files:

    http://git-scm.com/docs/gitignore

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