visit http://rawgit.com/
输入你需要执行的 html 网页,会给出两个链接
注意: cdn.rawgit.com 上的文件,第一次访问后会被 永久cache,从而导致 拉取不到最新的文件。
所以一般访问的时候,会指定 某个 commit hash , 或使用最新的 HEAD
https://cdn.rawgit.com/mebusy/html5_examples/a12340a5d32b0c760ef138301b067fb1153ef94b/00_marchingSquare.html
or https://cdn.rawgit.com/mebusy/html5_examples/HEAD/00_marchingSquare.html
git cherry-pick [-n] <commit>
show file change of a commit
get a file with specific revision
git show REVISION:filePath > outFilePath
-r means Output "raw" control characters.
[trick] use git log to display the diffs while searching
git log -p -- path/to/file
show files changed between 2 commit
git diff commit1 commit2 --name-only
provide username when clone private repos
git clone https://username:password@github.com/username/repository.git
gitlab: git clone leads to "SSL certificate problem: unable to get local issuer certificate"
git config --global http.sslVerify false
git clone ...
git config --global http.sslVerify true
Calling git clone using password with special character
! # $ & ' ( ) * + , / : ; = ? @ [ ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D
$ git clone https://myuser:password%21@github.com/myuser/repo.git
Copy branch from another repository
git clone your repo , so your repo's repo is named origin
add another remote repo , give it name html5
fetch remote repo data
checkout 1 branch html5/develop , to your local branch develop
git checkout -b develop html5/develop
push you local branch develop to origin
git push --set-upstream origin develop
delete a branch locally and remotely
$ git push --delete <remote_name> <branch_name>
$ git branch -d <branch_name>
delete all commit history in github
Checkout
git checkout --orphan latest_branch
Add all the files
Commit the changes
git commit -am "commit message"
Delete the branch
Rename the current branch to master
Finally, force update your repository
git push -f origin master
delete all tags, local & remote
# delete remote tags before deleting locals
git tag | xargs -L 1 | xargs git push origin --delete
# then delete local tags
git tag | xargs -L 1 | xargs git tag --delete
Undo a conflict and start over
dealing with a merge conflict doesn't necessarily mean you have to resolve it, you can also undo it.
# reset a specified sub module
$ git submodule update -f < module name>
# reset all sub modules
$ git submodule foreach git reset --hard
# reset all sub modules recursively
$ git submodule foreach --recursive git reset --hard