Ahri-珊
这篇博客将记录一些git指令。
Git笔记
git commit –amend
- 暂存区有新文件
提交当前的暂存区快照并覆盖之前的commit
- 暂存区没有新文件
可重新修改之前commit信息
git fetch <远程主机名> <远程分支名称>远程分支名称>远程主机名>
- git fetch之后 $ git checkout -b newBrach origin/master
在远程分支的基础上新建一个分支newBrach
- git fetch之后 $ git merge origin/master 或 $ git rebase origin/master
把远程分支与当前分支合并(前者相当于直接git pull,后者相当于git pull –rebase)
rebase与merge区别:rebase得到的树是一条直线,merge会新建一个节点将远程分支与当前分支连起来 详细点这里
git push
- git push
将当前分支提交到与其关联的远程分支
- git push <远程主机名> <本地分支名>:<远程分支名>远程分支名>本地分支名>远程主机名>
将<本地分支名>提交到<远程主机名>/<远程分支名>远程分支名>远程主机名>本地分支名>
–本地分支名为空的时候相当于删除<远程主机名>/<远程分支名>远程分支名>远程主机名>
- git push <远程主机名> <分支名>分支名>远程主机名>
将本地的<分支名>提交到<远程主机名>/<分支名>分支名>远程主机名>分支名>
git pull
与git push 用法差不多,本地分支名与远程分支名交换即可,意义是将远程的拉到本地
git add
- git add .(git add -A)
添加所有改动文件到暂存区
git add .: [<文件地址>]文件地址>
将path中的改动文件添加到暂存区
- git add -u
添加除新增文件外的改动文件到暂存区
- git add -p
每个除新增文件外的改动文件会一个一个列出改动的地方,并询问你是否添加到暂存区
git reset(不要在公共分支上使用)
- git reset HEAD <文件名>文件名>
将暂存区的文件<文件名>从暂存区移除文件名>
- git reset –mixed HEAD <文件名>文件名>
同1
- git reset –hard HEAD <文件名>文件名>
将暂存区的文件<文件名>从暂存区和工作区删除文件名>
- git reset HEAD(~1,~2…)
将当前分支回退1,2…提交。
git checkout
- git checkout -p <分支名>分支名>
比较当前分支与<分支名>的差别,并一个一个询问你要不要在当前分支应用这个差别分支名>
- git checkout -b <分支名>分支名>
创建<分支名>,并切换到这个分支分支名>
- git checkout –merge <分支名>分支名>
切换分支的同时,把当前分支的改动也复制到<分支名>分支名>
- git checkout HEAD~(1,2,3)
将当前分支的head回退1,2,3,再切换到新的分支就会把head指向的commit移到新的分支
git stash
- git stash
将未添加到暂存区的修改文件放入栈
- git stash pop
将栈里的文件取出
git cherry-pick
a.在当前分支找到要移动的commit的id
b.切换到需要此commit的分支
c.git cherry-pick
git branch
- git branch
查看本地所有分支
- git branch -d <分支名>分支名>
删除分支<分支名>(-D:强行删除)分支名>
- git branch -r
查看所有远程分支
- git branch -a
查看所有分支
- git branch -m <分支名>分支名>
新建分支<分支名>并切换到分支<分支名>分支名>分支名>
- git branch -f <分支名>分支名>
将分支<分支名>的head指向当前分支指向的commit分支名>
- git branch -f <分支名>
分支名>
将分支<分支名>的head指向commit
git rebase(不要在公共分支上使用)
- git rebase -i head(~2,~3…)
rebase的时候可以编辑
git revert(可在公共分支上使用)
- git revert head(~1,~2…)
将代码回滚1,2…个版本,并且保存回滚之前commit
git blame
- git blame
查看这个文件每一行的修改记录()
- git blame -L <行号1>,<行号2>
行号2>行号1>
查看这个文件行号1到行号2的修改记录
git diff
- git diff <分支名>分支名>
查看当前分支与分支<分支名>的差别分支名>
- git diff –cached
查看暂存区与当前HEAD指向版本的差异
git whatchanged -p
查看每个commit与上一个的差异
git reflog
查看所有commit,包括被删除的,配合git cheery-pick
git tag
- git tag #
打印出当前仓库的所有标签
- git tag <标签名>标签名>
创建标签<标签名>标签名>
- git tag -d <标签名>标签名>
删除标签<标签名>标签名>
- git push origin <标签名>标签名>
把标签传送到远程仓库
- git push origin –tags
将本地所有新增标签传送到远程仓库
Comments