git add 文件
注意:在某个路径下
git add && git commit -m
只会提交这个路径下的文件,父路径下文件不会提交
git reset --soft HEAD^
丢弃当前工作区修改的内容
git checkout --
回滚到某个版本
git reset --hard e377f60e28c8b84158
回滚后强制提交
git push -f
撤销add
git reset
git 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.py
git 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 amending
# 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
最新评论