git commit
- git commit -m ‘msg’
提交暂存区内容并提供注释 - git commit -am
直接将所有已跟踪的有修改文件自动add(对于没有跟踪的文件,还是需要执行add命令),然后提交暂存区内容,并提供注释 - git commit --amend
既可以对上次提交的内容进行修改,也可以修改提交说明。(个人用的极少,简单带过)
git pull
- git pull origin <remote_branch>:<local_branch>
将指定远程分支remote_branch拉取到指定本地分支local_branch,当前分支可以不是local_branch,local_branch也可以不存在,自动创建 - git pull origin <remote_branch>
将指定远程分支remote_branch拉取到本地当前分支,当前分支无需追踪远程分支remote_branch - git pull
拉取本地分支追踪的远程分支的最新代码,如果无追踪,则会提示错误
git push
注意下面冒号的位置,与前面单词空一格,与后面单词不空格
- git push origin local_branch :remote_branch
将本地分支local_branch推送到远程分支remote_branch - git push origin master
省略远程分支名,表示将本地分支推送到与之存在追踪关系的远程分支,如果该远程分支不存在,则新建同名远程分支 - git push origin :remote_branch
省略本地分支名,表示推送一个空的本地分支到远程分支,效果等同于删除指定远程分支 git push origin --delete master - git push origin --delete remote_branch
删除远程分支remote_branch - git push
当前分支与远程分支存在追踪关系且只有一个远程分支与之关联,可省略本地分支名,远程分支名 - git push -u origin remote_branch 等效于 git push --set-upstream origin remote_branch
进行推送并将当前本地分支追踪远程分支origin/branch-name,如远端不存在该分支,则自动创建
git reset
- git reset [-q] [<tree-ish>] [–] <paths>…
说明:使用指定提交下的文件替换暂存区的文件,不会改变工作区和引用head指向的提交
[]里的参数表示可选,-q:静默操作,只提示错误信息(不会打印被影响到的文件信息), --:为了避免路径和引用指向的提交同名冲突
<>里的参数表示必选,tree-ish表示目录树中的指定提交id,paths表示暂存区中要替换的文件的路径,…表示多选,可替换多个文件
例如 git reset HEAD <paths> 将暂存区中的指定文件重置为当前head所指向提交对应的版本,相当于git add <paths>的反操作
- git reset (–patch | -p) [<tree-ish>] [–] [<paths>…]
说明:选择性将指定提交的文件内容替换暂存区的文件内容,会进行文件差异对比,需要手动进行选择性替换内容,并不是覆盖
极少用且麻烦,如何手动选择的操作参数就不列出了,参考文章https://www.jianshu.com/p/e3682693d3fb
- git reset [<mode>] [<commit>]
说明:此操作会移动head指针,移动前后的commit内容会被回滚,根据模式参数,这些内容可能会被完全清除或保留在暂存区或工作区
mode表示模式,一共有[–soft | --mixed | --hard | --merge | --keep]几种,默认为–mixed
- –soft 让head指向指定commit,工作区保持不变,保留暂存区原有内容,但是会把回退前和回退后的版本差异进行合并到暂存区
应用:commitA是一个大版本提交,commitB也是一个大版本提交,中间在开发过程中零零散散进行了多次频繁提交,为了让commit演进线图更为清晰,可以从commitB reset --soft 回退到commitA,这样就会把AB之间所有的差异都放到暂存区,这时只要再次提交暂存区就能得到一个从A到B的一次提交 - –mixed 让head指向指定commit,保留工作区原有内容,清空暂存区,清空的内容会被合并放到工作区,同时也会把回退前后的文件差异合并到工作区
- –hard 让head指向指定commit,清空暂存区,清空工作区,啥也不保留,慎用,当前工作区和暂存区的内容这些未提交的再也无法找回
- –merge 如果撤销的是上一个操作是 git pull,作用类似hard,但是工作区如果有改动的话,会停止重置。如果撤销的是上一个操作是 git merge,则执行动作虽然工作区本地文件被重置了,但是暂存区会有之前本地的修改。还是慎用
- –hard 作用与hard一样,但是如果追踪的文件在本地工作区有改动的话,会终止撤销
参考文章:https://www.jianshu.com/p/c2ec5f06cf1a,https://www.jianshu.com/p/e3682693d3fb
git merge
git log 与 git reflog
https://blog.csdn.net/chenpuzhen/article/details/92084229