Git常用命令总结

对分支进行操作

  • 查看当前分支:git status
  • 查看某个项目的所有分支:git branch
  • 切换到指定的分支:git checkout branchName
  • 合并某分支到当前分支:git merge branchName
  • 删除某个分支:git branch -d branchName
  • 创建某个分支并切换到该分支上:git checkout -b branchName

添加文件到git仓库

  • 添加修改的文件到本地仓库:git add filePath (将文件添加到暂存区, filePath为要添加的文件的路径)
  • 一次提交添加过的文件:git commit -m "注释内容"(将暂存区的所有文件提交到本地仓库的分支上)
  • 推送代码到远程仓库:git push (将代码推送到远程的git仓库的对应的分支上)

特别注意:git有一个暂存区的概念,git add命令就是将工作区的修改添加到暂存区,最后通过git commit一次性将暂存区中的文件提交到仓库的分支上。

回退到某个版本

  1. 查看已经提交的历史,以便查看回退到哪个版本:git log
  2. 回滚到历史的某个版本之后,想要再次回到原来的某个版本:git reflog
  3. 当提交出现问题,回退到某个版本:git reset --hard commit_id

对比工作区和分支代码

  • 对比工作区项目和分支的区别:git diff
  • 对比工作区项目的某个文件和分支上某个文件的区别:git diff HEAD --本地项目的文件路径

对修改文件进行还原

  • 工作区的文件修改出错想要还原回修改前的状态:git checkout -- 本地项目的文件路径(该文件没有添加到暂存区)
  • 工作区的文件已经添加到暂存区,这种情况下的还原分为两步:第一步先把暂存区中的修改进行还原,可以使用命令git reset HEAD -- 项目的文件路径;第二步再把工作区中的修改进行还原,可以使用命令git checkout -- 本地项目的文件路径

对工作区删除的文件进行还原

  • 删除工作区的文件:git rm 本地项目的文件路径
  • 如果工作区的文件被误删除,这种情况下的还原分为两步:第一步先把暂存区中的修改进行还原,可以使用命令git reset HEAD -- 项目的文件路径;第二步再把工作区中的修改进行还原,可以使用命令git checkout -- 本地项目的文件路径

解决冲突

什么情况下会出现冲突呢?两个分支都对同一个文件进行了修改,在进行文件合并时,会遇到冲突的问题。这里会分为两种情况,一种情况是工作区修改的文件没有commit,另一种情况是已经进行了commit。

  1. 针对第一种情况,可以使用命令:git stash,然后再进行merge,最后解决冲突,提交即可
  2. 针对第二种情况,直接merge,解决冲突,提交即可。
  3. 合并分支:git merge --no-ff -m "注释" branshName(这里采用强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息)
  4. 在代码合并时,假如要提交到远程仓库的dev分支,首先要将dev的代码合并到自己的分支上,解决完冲突之后,把代码提交到分支上之后。再切换到dev分支上,将自己分支的代码合并到dev上

多分支同时开发

如果我们在dev分支上进行开发,开发了一半。这时需要再创建一个分支,处理其他的bug。这时不能提交开发了一半的代码。此时需要切换到一个新的分支上来进行开发。这时怎么处理这些未开发完的代码呢?将开发了一半的代码先‘冻结’

  • 使用git stash先‘冻结’代码
  • 如果在其他分支上开发完成了,需要重新切回分支再继续开发。首先通过命令git stash list来查看,然后通过git stash pop来恢复‘冻结’’的代码。

推送分支

  • 推送代码之前要首先更新一下分支的代码:git pull,遇到冲突就处理冲突等。
  • 将分支代码推送到远程仓库:git push origin branchName
  • 查看远程仓库的版本信息:git remote -v

写在最后:git的分支的创建时只是创建了一个指针,当前的分支会指向最新的提交,HEAD会指向当前的分支。代码每次提交,当前的分支会向前移动一步。所以我们会看到分支会是一条线,随着不断的提交,这条线会变得越来越长。所以git的创建分支和切换分支时都非常的快,其实只是创建了一个指针,在切换分支时,改变了分支的指向而已。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值