git cherry-pick <...>采用当前分支的版本:
git checkout --ours <...>采用合并分支的版本:
git checkout --theirs <...>合并中断
git merge --abortgit rm --cached logs/xx.log- 然后更新
.gitignore忽略掉目标文件, - 最后
git commit -m "xxxx"
git config core.editor "\"C:/Program Files (x86)/Notepad++/notepad++.exe\" -multiInst -notabbar -nosession -noPlugin"注意Notepad++程序的路径与外面的引号
还原 Vim 配置
git config core.editor vim可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。
git remote show origin可以看到那些远程仓库已经不存在的分支,根据提示使用命令:
git remote prune origin这样就删除了那些远程仓库不存在的分支。
git log -p <filename>可以看到<filename>相关的<commit_id>记录
git log <filename>只看某次提交中的某个文件变化,可以直接加上<filename>
git show <commit_id> <filename># 工作区内容已更改
# 取消指定文件 在工作区内容的更改操作
$ git checkout -- <file>
# 需要撤销: 暂存区内容已更改
# 可以把暂存区的修改撤销掉(unstage),重新放回工作区
$ git reset HEAD <file>
# 需要撤销: 仓库(版本库)内容已更改
# 将版本跳转到指定的版本节点上去
$ git reset --hard <commit_id>
# 重新备注说明最近一次的提交信息:
$ git commit --amendgit pull origin master && git add . && git commit -m "修改" && git push origin masterGitHub
ssh git@github.comGitee 码云
ssh git@gitee.comgit remote add <origin name> <url address>
git push -u origin --all
git push origin --tagsgit branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --allgit checkout -b <branch> origin/<branch>当正在修改某文件A,此时需要commit,但是A没修改完暂时不能一起commit。 执行:
git update-index --assume-unchanged A的路径git暂时会忽略该文件的修改, git status查看时A已经不在待commit列表中了。
让git重新监视文件A的修改:
git update-index --no-assume-unchanged A的路径如果忽略的文件多了,可以使用以下命令查看忽略列表
git ls-files -v | grep '^h\ '提取文件路径,方法如下
git ls-files -v | grep '^h\ ' | awk '{print $2}'所有被忽略的文件,取消忽略的方法,如下
git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchangedgit rm -r --cached .
git add .
git commit -m 'update .gitignore'
-- 删除 .git/ 以外的所有文件
git checkout -- .git log | grep "^Author: " | awk '{print $2}' | sort | uniq -c | sort -k1,1nrgit log --author="_your_name_" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'输出结果:added lines: 38861, removed lines: 22916, total lines: 15945
列出合并为master的分支
git branch --merged master
列出合并到HEAD的分支(即当前分支的尖端)
git branch --merged
列出尚未合并的分支
git branch --no-merged