oldsraka.blogg.se

Sourcetree checkout branch
Sourcetree checkout branch




sourcetree checkout branch
  1. Sourcetree checkout branch how to#
  2. Sourcetree checkout branch full#

Git commit -m "Wow, you don't have to copy-paste to undo" # the old version of the file will be in your index Oh shit, I need to undo my changes to a file! # find a hash for a commit before the file was changed

Sourcetree checkout branch full#

You can also revert a single file instead of a full commit! But of course, in true git fashion, it's a completely different set of fucking commands. Turns out you don't have to track down and copy-paste the old file contents into the existing file in order to undo changes! If you committed a bug, you can undo the commit all in one go with revert. # follow prompts to edit the commit message # git will create a new commit that undoes that commit # once you've found your commit, save the hash

sourcetree checkout branch

# use the arrow keys to scroll up and down in history git diff -stagedįile under ¯\_(ツ)_/¯ (yes, I know this is a feature, not a bug, but it's fucking baffling and non-obvious the first time it happens to you!) Oh shit, I need to undo a commit from like 5 commits ago! # find the commit you need to undo If you know that you made changes to files, but diff is empty, you probably add-ed your files to staging and you need to use a special flag. Oh shit, I tried to run a diff but nothing happened?! # now your changes are on the correct branchĪ lot of people have suggested using cherry-pick for this situation too, so take your pick on whatever one makes the most sense to you! git checkout name-of-the-correct-branch Thank you all! Oh shit, I accidentally committed to the wrong branch! # undo the last commit, but leave the changes available Also, many many many people suggested an awesome way to make this shorter that I didn't know myself. Note: this doesn't work if you've already pushed the commit to a public/shared branch, and if you tried other things first, you might need to git reset instead of HEAD~. # your commit lives in this branch now :) # remove the last commit from the master branch Oh shit, I accidentally committed something to master that should have been on a brand new branch! # create a new branch from the current state of master Stupid commit message formatting requirements. # follow prompts to change the commit message Oh shit, I need to change the message on my last commit! git commit -amend Warning: You should never amend commits that have been pushed up to a public/shared branch! Only amend commits that only exist in your local copy or you're gonna have a bad time. You could also make the change as a new commit and then do rebase -i in order to squash them both together, but this is about a million times faster.

sourcetree checkout branch sourcetree checkout branch

and FML, I didn't put a space after an equals sign. This usually happens to me if I commit, then run tests/linters. # now your last commit contains that change! Mega hat tip to the many many many many many people who suggested adding it! Oh shit, I committed and immediately realized I need to make one small change! # make your change You can use this to get back stuff you accidentally deleted, or just to remove some stuff you tried that broke the repo, or to recover after a bad merge, or just to go back to a time when things actually worked. # each one has an index find the one before you broke everything # you will see a list of every thing you've Oh shit, I did something terribly wrong, please tell me git has a magic time machine!?! git reflog So here are some bad situations I've gotten myself into, and how I eventually got myself out of them in plain english.

Sourcetree checkout branch how to#

Git documentation has this chicken and egg problem where you can't search for how to get yourself out of a mess, unless you already know the name of the thing you need to know about in order to fix your problem. Git is hard: screwing up is easy, and figuring out how to fix your mistakes is fucking impossible.






Sourcetree checkout branch