工作区 => 暂存区
git add 文件注意:在某个路径下
git add && git commit -m只会提交这个路径下的文件,父路径下文件不会提交
撤销提交
git reset --soft HEAD^丢弃当前工作区修改的内容
git checkout -- 回滚到某个版本
git reset --hard e377f60e28c8b84158回滚后强制提交
git push -f 撤销add
git resetgit reset HEAD// 如果后面什么都不跟 就是上一次add里面的全部撤销 git reset HEAD XXX/XXX/XXX.java// 对某个文件进行撤销 冲突后恢复到冲突前版本
git merge --abort提交到远程
git push origin INF-BMR-1662-NEW:refs/for/master提交所有分枝到远程
git push 库名 --all拉取远程分枝
git pull origin 分枝名拉取所有分枝
只能拉取所有库所有分枝
git pull --all查看某个commit修改
git diff commitId或者
git diff commitId^或者
git show commitId查看某个commit更改的文件
# --name-only 只显示文件名 git log --name-only -1# --pretty=format:"" 格式化commit message 这里什么都不显示git log --pretty=format:"" -1# 最终git log --pretty=format:"" --name-only -1查看commit提交历史
git log查看某人的commit
git log --author="lll"查看某个所有commit影响的文件
git log --author="lll" --name-only查看某个文件的修改
所有修改:
git log -p最近两次修改:
git log -p -2单个文件:
git log execution/manager/balance.pygit log --pretty=oneline execution/manager/balance.py然后再:
git show commitId查看某个commit文件内容修改
# 查看指定commit hashID的所有修改:git show commitId# 查看某次commit中具体某个文件的修改:git show commitId fileName查看某两个分枝文件内容不同
场景:对于一个经常提交,但是一直没有push线上的分枝,可以把线上分枝pull下来,和修改分枝做对比。目的是防止很久没有push的分枝产生隐藏的线上问题。
git diff branch1 branch2 --stat //显示出所有有差异的文件列表git diff branch1 branch2 文件名(带路径) //显示指定文件的详细差异git diff branch1 branch2 //显示出所有有差异的文件的详细差异分支重命名
git br -m oldName newName取回远程新增的分枝
remote库中增加了新的分支,需要将新的分支获取到本地库中来。
要取回所有新增加的分支,使用:
git fetch取回某个分支,使用:
git fetch origin <远程主机名> <分支名>如取回origin主机的master分支
$ git fetch origin master冲突
<<<本地修改===远程修改>>>这样记忆:
本地<==>远程多个commit合并
git rebase -i注意最上面一条是最老的提交,最下面一条是最新的提交
从下到上依次写上squash
# p, pick = use commit# r, reword = use commit, but edit the commit message# e, edit = use commit, but stop for aming# s, squash = use commit, but meld into previous commit# f, fixup = like "squash", but discard this commit's log message# x, exec = run command (the rest of the line) using shell