git clone
git remote add upstream http://...
git checkout -b test upstream/master
git blame ShareButton.js
git log --oneline
git reset --soft XX
git status
git add .
git commit -m ''
git pull --rebase upstream master
git rebase continue
git push -f origin dev
git remote show upstream
git remote rm upstream
git stash save aaaa
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
git fetch origin master:tmp = pull + merge
git branch -D delete
git log --pretty=oneline文件名
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e
部分提交
git cherry pick
情况一: 本地 未 add
git checkout index.js
git checkout .
git stash --all
情况二:add 或 commit 或 push 的提交
git reset be5ace7
情况三:删除最后一次远程提交
方式一:使用revert (多一次提交)
git revert HEAD
git push origin master
方式二:使用reset(历史记录会减少,第一种比较好)
git reset --hard HEAD
git push origin master -f
打patch
git diff 733cfe3 fd303fd > new.patch
git format-patch 733cfe3...fd303fd
git grep
git blame
git stash
打标签
git tag 显示所有标签
git show v1.0.5 显示标签信息
git tag -a v1.0.5 -m 'published v1.0.5' 添加标签
git push origin --tags 推送标签到远端
git push origin v1.0.5 推送标签到远端
git log package.json
git reset package.json xxx
将当前分支推送到远程的同名的简单方法,如下 -
$ git push origin HEAD
将当前分支推送到源存储库中的远程引用匹配主机。 这种形式方便推送当前分支,而不考虑其本地名称。如下
$ git push origin HEAD:master
git tag -a v4.12.0 -m '十月份第二次迭代4.12.0版'
git push origin v4.12.0
git tag
git tag| grep 4.1
git checkout -b test-risk v2.8.98.0
$ git push origin HEAD:master
git tag -a v4.12.0 -m '十月份第二次迭代4.12.0版'
git push origin v4.12.0
git tag
git tag| grep 4.1
git tag -a v1.2 9fceb02 对过去提交打标签
git checkout -b test-risk v2.8.98.0
git cherry-pick 444 555
打patch https://juejin.im/post/5b5851976fb9a04f844ad0f4
git diff 2c87f3ea86 > grid-debug
git revert merge:
git revert f846xxxx46 -m 1