git 常用命令记录

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值