Git / BitBucket / SourceTree
Reverting Commits
---------------------
I am new to git but had to do some branching and merging etc. recently. SourceTree as a git client works quite well. A few things though, at times the changes in repository don't reflect immediately in the SourceTree UI. Let us say there is a commit from other team member, you may not see it in UI right away but when you do pull from UI, the window which pops up, does show all the changes in remote branches.
There is a very good article for git starters.
http://git-scm.com/book/en/v2/Git-Branching-Basc-Branching-and-Merging
In source tree, you can open the command window by Actions->Open In Terminal. It will open the Git shell for the selected project. There you can directly execute any command.
I had a situation where I had to revert few commits into one branch. One of the commit was a merge from another branch also.
A----AC1---C2(Merge from A)-----------AC3
B----BC1----(Merge into A)---------------BC2
Let us say I had to revert the commits AC3 and AC2 on branch A. ( keep in mind here these are published changes..not just in local branch )
1. First I switched to branch A.
git checkout A
2. I ran following command.
git revert -n AC3 AC2
It failed complaining that there is merge commit and parent number ( -m ) is not specified.
3. So I thought of reverting one by one , so I executed following command
git revert -n AC3
It complained the revert is already in progress.
4. At this point I had to abort the earlier revert as following.
git revert --abort
5. Now I did the following
git revert -n Ac3
git revert -n Ac2 -m 1 ( 1 indicates A branch is the parent or main branch , otherwise specify 2)
7. Finally did a commit for changes reverted.
git commit A
8. Now I wanted to compare the changes between branch A ad B
git diff A B
Aborting a merge
----------------------
Let us say you started a merge by mistake , you want to abort it, use:
-----------------------------------------
If you just add empty folder, SourceTree won't display those in the Unstaged files section. But as soon as you add files to the folder, you will see those there.
By the way , you still have to create files and folder using regular OS commands before you could use git commands to add those to local and remote repos.
Renaming a branch
----------------------
http://www.benjaminlhaas.com/blog/locally-and-remotely-renaming-branch-git
Below are the commands in case you don't want to read the whole article above.
git branch -m oldBranchName newBranchName
git remote -v
git push origin :oldBranchName
git push origin newBranchName
9. How to undo local changes in tracked files, which are not staged
git chekcout .
---------------------
I am new to git but had to do some branching and merging etc. recently. SourceTree as a git client works quite well. A few things though, at times the changes in repository don't reflect immediately in the SourceTree UI. Let us say there is a commit from other team member, you may not see it in UI right away but when you do pull from UI, the window which pops up, does show all the changes in remote branches.
There is a very good article for git starters.
http://git-scm.com/book/en/v2/Git-Branching-Basc-Branching-and-Merging
In source tree, you can open the command window by Actions->Open In Terminal. It will open the Git shell for the selected project. There you can directly execute any command.
I had a situation where I had to revert few commits into one branch. One of the commit was a merge from another branch also.
A----AC1---C2(Merge from A)-----------AC3
B----BC1----(Merge into A)---------------BC2
Let us say I had to revert the commits AC3 and AC2 on branch A. ( keep in mind here these are published changes..not just in local branch )
1. First I switched to branch A.
git checkout A
2. I ran following command.
git revert -n AC3 AC2
It failed complaining that there is merge commit and parent number ( -m ) is not specified.
3. So I thought of reverting one by one , so I executed following command
git revert -n AC3
It complained the revert is already in progress.
4. At this point I had to abort the earlier revert as following.
git revert --abort
5. Now I did the following
git revert -n Ac3
git revert -n Ac2 -m 1 ( 1 indicates A branch is the parent or main branch , otherwise specify 2)
7. Finally did a commit for changes reverted.
git commit A
8. Now I wanted to compare the changes between branch A ad B
git diff A B
Aborting a merge
----------------------
Let us say you started a merge by mistake , you want to abort it, use:
git merge --abort
How to add new folders and files-----------------------------------------
If you just add empty folder, SourceTree won't display those in the Unstaged files section. But as soon as you add files to the folder, you will see those there.
By the way , you still have to create files and folder using regular OS commands before you could use git commands to add those to local and remote repos.
Renaming a branch
----------------------
http://www.benjaminlhaas.com/blog/locally-and-remotely-renaming-branch-git
Below are the commands in case you don't want to read the whole article above.
git branch -m oldBranchName newBranchName
git remote -v
git push origin :oldBranchName
git push origin newBranchName
9. How to undo local changes in tracked files, which are not staged
git chekcout .
Comments
Post a Comment