

GIT DISCARD CHANGES TO FILE CODE
When you merge in someone else's code (which also happens during a pull a pull is essentially a fetch followed by a merge), there are few possible situations. I'll expand a bit on how conflicts and merging work in Git. If you don't do this, and the filename happens to match the name of a branch or tag, Git will think that you want to check that revision out, instead of checking that filename out, and so use the first form of the checkout command. It's also a good habit to have, when passing in a filename, to offset it with -, such as git checkout -ours. or a filename in order to get the second behavior from git checkout. So, if you want a behavior that will overwrite existing files, you need to pass in. The way it distinguishes is by whether you've passed a filename in if you haven't passed in a filename, it tries switching branches (though if you don't pass in a branch either, it will just try checking out the current branch again), but it refuses to do so if there are modified files that that would effect. git checkout has two modes one in which it switches branches, and one in which it checks files out of the index into the working copy (sometimes pulling them into the index from another revision first). Git add -u # mark all conflicted files as merged # checkout our local version of all files Then you need to mark the conflicts as resolved, which you can do with git add, and commit your work once done: git checkout -ours.

to git checkout to tell it to check out everything in the tree. Commit the change to the reverted file.Git checkout has the -ours option to check out the version of the file that you had locally (as opposed to -theirs, which is the version that you pulled in).Type git checkout - path/to/file and hit enter.In the terminal, change directories to the working directory.Find the path to the file you want to revert from the working directory.Find the commit ID of the version of the file you want to revert to.To revert a single file to a specific version do the following: Then you can push that commit to the remote so that the version of your branch on GitHub matches your local version. This done with the standard commit command: In this case, the change is a revert of a single file. But once we revert the file, we need to commit that change. We didn't want a new commit for the file we reverted. I know what you're thinking, "Wait a minute, I thought the whole point was to not create a new commit?" Well that's half true. If I were going to revert the file in the screenshots above, that would look like this: The format of the git command will look like this: Once you've opened a terminal and changed to the working directory, you use git checkout to revert the file. Because of this, you only want the underlined portion.Īll that is left is to revert the file. The first directory listed is the working directory name, and will be the directory you're in when using this file path. Notice I only underlined part of the path.

This part is easy because the path to the file is on the same GitHub screen where you found the commit ID for the file.Ībove you can see the same screenshot from before, but this time I've underlined the file path. The next thing you need is the path to the file from the working directory. Either write this commit ID down, or copy it to your clipboard. That is the commit ID for the most recent commit in which that file was modified. On the right hand side you can see a 7 digit commit ID and a date. Once you navigate to the file, right above the file you should see this: Reverting the file is a much cleaner what to handling it.įirst you need to go to the shared repository on GitHub and find the file that you want to revert. However, manually changing each line of code in those files back to their original state and doing a new commit can lead to a messy commit history. This need arises because you sometimes need to change files not related to you're pull request in order to test the feature you're working on.
GIT DISCARD CHANGES TO FILE HOW TO
Once you start collaborating with other developer it's going to be important to know how to revert a single file to a certain commit.
