git常用命令 精华总结

历史简介

略过

最基本的操作

  • git init 创建版本库,会产生一个.git的隐藏目录,用来跟踪管理版本库
  • git add 把文件添加到仓库
  • git commit把文件提交到仓库,-m可以添加提交信息。commit会将add进仓库的文件全部提交到仓库。
  • git status其实感觉这个并不常用, 到那时这个可以看仓库的当前状态。git status可以和git diff命令配合使用,通过status查看哪些文件被修改过还没有提交,通过diff可以看修改了哪些内容。也可以通过git status查看将被commit命令将提交到仓库的文件。

工作区和暂存区

当前在编辑的就是工作区
add命令提交到暂存区,commit提交到当前本地仓库
在这里插入图片描述

修改管理

  • commit是将暂存区内容提交到本地仓库,所以要提交当前修改,必须要先将修改内容add到暂存区之后再commit
  • git checkout -- filename可以将filename在工作区的修改撤销,但是如果已经添加到了暂存区,就只能恢复到暂存区的内容。
  • git reset HEAD <filename>就可以撤销暂存区的修改
  • git reset HEAD既可以回退版本,也可以将暂存区的修改回退到红作曲,用HEAD时表示使用最新版本。

远程仓库

  • 配置好ssh等信息,然后新建一个仓库
  • 本地仓库目录下运行git remote add origin url,这是一条本地关联远程库的命令,远程仓库名是origin,默认的这是,但是origin一看就是远程仓库。可以远程关联任意一个仓库,但是推送时需要自己的公钥在账户列表里。
  • git push -u origin master这里就是将本地仓库内容推送到远程仓库。第一次加上-u参数,这样推送时不仅将内容推送上去,还将本地仓库和远程仓库关联起来,在以后的推送或者拉取时就可以简化命令,使用 git push origin master
  • 删除远程库,使用git remote rm <name>这条命令来删除远程库,在此之前,可以使用git remote -v来查看远程库的信息,然后根据名字删除。

分支管理

git用一个HEAD指针指向当前的工作分支,如果要切换工作分支,只需要改变head的指针,如果要合并分支,也只需要更改指针,所以操作就很快。

  • git branch dev创建了一个dev分支
  • git checkout dev切换到dev分支
  • 以上两条命令可以使用git checkout -b dev这天命令来替代,创建并切换到分支dev
  • git branch产看分支,前面有*的就是当前分支,所有的add,commit都会提交到仓库的这个分支。
  • git merge dev将当前分支与dev分支合并。
  • git branch -d devdev分支删除。
  • 实际上也可以使用git switch来进行相关操作。git switch -c dev创建并切换到dev分支。git switch master切换到master分支。
  • 上述的分支合并方式,其实会默认使用Fast forward模式,但是这种模式下删除分支后就会丢失掉分支信息。如果要强制禁用Fast forwardGit就会在merge时生成一个新的commit
  • 尝试之后,使用git merge --no-ff -m "merge with no-ff"这条命令提交来不使用Fast forward
    我们可以用git log --graph --pretty=oneline --abbrev-commit命令来看提交图,美化一下。
    使用Fast forward和不使用的两个图的对比:
    不使用Fast forward合并
    使用Fast forward合并
    就是这样。
bug/feature branch

暂时略 2021.04.07

冲突管理 和 多人协作

冲突管理
  • 冲突太常见了,两个分支都有自己的提交,从创建了一个分支
    变成了在这里插入图片描述
    这时合并两个分支就很有可能会产生冲突,比如对同一个文件进行了修改。
  • merge产生冲突,我们可以直接产看冲突文件的内容,也可以通过git status产看冲突的文件
  • 冲突文件中用<<<<<=====>>>>>>来标记不同分支的内容,修改后保存在提交即可
多人协作

两个人都在本地创建了同一个分支,然后其中一个已经push到了远程仓库,而另一个也对文件进行了修改,并尝试进行远程推送,推送失败。

  • 先用git pull将最细腻的提交从远程的同名分支抓下来,然后在本地合并解决冲突再推送。
  • git pull可能也会失败,原因如果是如下:原因是没有指定本地dev分支和远程origin/dev分支的链接,可以使用git branch --set-upstream-to=origin/<branch> dev命令来进行本地分支和远程分支的连接再进行推送。
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> dev
  • git pull成功后,在本地进行分支合并,合并会有冲突,手动解决完冲突后就可以push了。

git stash

git stash可以在本地存一个快照,常用来解决pull冲突。

  • git stash可以存一个快照
  • git stash list可以看当前有哪些快照
  • git stash drop stash@{num}可以删除快照
  • git stash clean清除所有快照(应该是有这条命令)
  • git pop [stash@{num}]恢复编号为num的快照,[]内容为可选内容。

其他常用操作

  • git log --graph --pretty=oneline --abbrev-commit可以查看分支的提交历史
  • git branch --set-upstream-to=origin/master master设置本地分支和远程分支的对应关系````````````````
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渴鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值