Difference between revisions of "How to do git tricks"

From openwfm
Jump to navigation Jump to search
Line 18: Line 18:
 
</pre>
 
</pre>
 
https://stackoverflow.com/questions/7802252/why-cherry-pick-pick-change-more-than-one-commit
 
https://stackoverflow.com/questions/7802252/why-cherry-pick-pick-change-more-than-one-commit
 +
 +
"Git goes back in the history until the cherry pick source matches the target and creates the patch based on this revision. That's why more changes might appear ..."
 +
 
==Include branch from an unrelated repository==
 
==Include branch from an unrelated repository==
 
<pre>
 
<pre>

Revision as of 21:56, 19 January 2019

Comparing files

From https://stackoverflow.com/questions/8131135/git-how-to-diff-two-different-files-in-different-branches

git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt

How to link to such comparison view on github?

Compare and copy files from other branches

https://stackoverflow.com/questions/2364147/how-to-get-just-one-file-from-another-branch

Cherry pick commit and update only some files

? Other than copy over the files I do not want changed manually, I do not know.

Check the changes in one commit

git log -p -1 <sha1-of-your-commit>

https://stackoverflow.com/questions/7802252/why-cherry-pick-pick-change-more-than-one-commit

"Git goes back in the history until the cherry pick source matches the target and creates the patch based on this revision. That's why more changes might appear ..."

Include branch from an unrelated repository

git remote add rep2-git url_to_unrelated_repository
git fetch rep2-git
git checkout remotes/rep2-git/branch2
git checkout -b rep2/branch2
git push -u origin rep2/branch2:rep2/branch2

There is no need for the two repositories to have a common initial commit or anything. The commit hashes are preserved. You can even git cherry-pick commit from the other repostory and git will do pretty good job finding files to apply the commits to, even if the files have somewhat different names and are in somewhat different locations in the file two file trees.