- github
- run html on github
- merge specific commit
- get a file with specific revision
- git show/diff 乱码问题
- [trick] use git log to display the diffs while searching
- show files changed between 2 commit
- provide username when clone private repos
- gitlab: git clone leads to "SSL certificate problem: unable to get local issuer certificate"
- Copy branch from another repository
- delete a branch locally and remotely
- delete all tags, local & remote
- partial commmit
- handling conflict
- Reset Submodule
- Cool Git Command
- Big Repo Stuff
- visit
http://rawgit.com/ - 输入你需要执行的 html 网页,会给出两个链接
- https://rawgit.com/mebusy/html5_examples/master/XXXX.html
- url for production
- https://cdn.rawgit.com/mebusy/html5_examples/master/XXXX.html
- url for dev/testing
- https://rawgit.com/mebusy/html5_examples/master/XXXX.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>
-nmeansno commit
git show REVISION:filePath > outFilePath
git config --global core.quotepath falseOR
git diff | less -r-rmeansOutput "raw" control characters.
git log -p -- path/to/file
git diff commit1 commit2 --name-onlygit clone https://username[:password]@github.com/username/repository.git
git config --global http.sslVerify false
git clone ...
git config --global http.sslVerify true
- git clone your repo , so your repo's repo is named
origin - add another remote repo , give it name
html5git remote add html5 ...
- fetch remote repo data
git fetch html5
- checkout 1 branch
html5/develop, to your local branchdevelopgit checkout -b develop html5/develop
- push you local branch
developtoorigingit push --set-upstream origin develop
$ git push --delete <remote_name> <branch_name>
$ git branch -d <branch_name>
# 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 --deletegit commit -p <filename>- dealing with a merge conflict doesn't necessarily mean you have to resolve it, you can also undo it.
git merge --abort
git rebase --abort
Well, its not technically managing conflicts with submodules (ie: keep this but not that), but I found a way to continue working...and all I had to do was pay attention to my git status output and reset the submodules:
it reset HEAD <sub-module-name>
git commit# 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- save your local modifications away and reverts the working directory to match the HEAD commit.
git stash --all
- Restore saved progress
git stash pop
git blame --color-lines --color-by-age -L xxx path/to/file-L means Little, it can be a range <start>,<end>, or a function :<funcname>
you can do exactly the same thing with git log
git log -L 40,60:path/to/filefind line copies within and across files in the same commit
git blame -w -Cor the commit that create the file
git blame -w -C -Cor any commit at all
git blame -w -C -C -Cfind line movements
git blame -w -M -M -Mthe pickaxe
filter all my git log output to anything that has this regular expression or the string in it
git log -S files_watcher -pshow word based diff instead of lines
git diff --word-diffexample:
reset a [-specified-]{+speci fied+} sub module$ git maintenance start
$tail -3 .git/config
[maintenance]
auto = false
strategy = incrementalstart background job to
- gc: disabled
- commit-graph: hourly
- prefetch: hourly
- loose-objects: daily
- incremental-repack: daily
- pack-refs: none
git merge --abort # 放弃合并,回到合并前的状态
git reset --soft HEAD~1 # 撤销掉本地提交,但保留修改内容在工作区
git checkout <path> # 放弃工作区的修改git config core.untrackedCache true
git config core.fsmonitor truefilter out all blobs (file contents) until needed by Git.
$ git clone --filter=blob:none #omits all blobs.or NO trees ( it's relatively rare to use this except for in CI build type stuff)
$ git clone --filter=tree:0