git常用命令总结

本文详细介绍了Git的协作模式,包括推送、合并冲突解决、rebase操作,以及基础指令如分支管理、代码提交流程和解决常见问题的方法。重点讲解了如何安全地在本地创建分支、合并代码以及git的标签管理和设置。
摘要由CSDN通过智能技术生成

Git支持多种协议,默认的git://使用ssh,也可以使用https等其他协议,但ssh协议速度最快。创建一个属于自己的分支,在自己的分支上干活、提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

1、git协作模式

首先,可以推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,即能推送成功!
注:

  • 解决冲突:把Git合并失败的文件手动编辑为我们希望的内容,再提交。用git log --graph命令可以看到分支合并图。
  • rebase操作:可以把本地未push的分叉提交历史整理成直线,目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比

2、git基础指令

m -rf .git //删除项目记录
git init  //初始化仓库
git add * //添加文件到暂存区
git commit -m "message"  //将暂存区内容提交到当前分支
git status  //仓库当前状态
git diff  //查看修改内容
git log  //修改记录,--pretty=oneline参数表示每条记录单行显示
git reset --hard HEAD^  //回退上一个版本
git reset --hard <版本号>  //回到指定某个版本
git reflog  //记录每次命令
git diff HEAD -- file  //命令可以查看工作区和版本库里面最新版本的区别
git checkout -- file  //丢弃工作区的修改
git reset HEAD <file>  //撤销暂存区的修改
git rm <file>  //用于删除文件
  
//远程仓库
git remote add origin <url>  //绑定远程仓库,关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名
git push -u origin master  //将当前分支master推送到远程,第一次推送添加-u参数,将本地master与远程master进行关联
git remote -v  //查看远程仓库信息
git remote rm origin  //删除本地仓库和远程仓库的关联

//分支管理
git branch dev  //创建dev分区
git checkout dev  //切换到dev分区
git checkout -b dev  //创建(-b)并切换到dev分支
git switch -c dev  //创建(-c)并切换到dev分支
git branch  //查看当前分支
git merge dev  //用于合并指定分支到当前分支
git branch -d dev  //删除dev分支
git merge --no-ff -m "merge with no-ff" dev  //合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,还需要加上-m参数,把commit描述写进去
git stash  //保存工作现场
git stash pop  //恢复工作现场
git cherry-pick <commit>  //复制提交操作到当前分支
git branch -D <name>  //强行删除一个没有合并的分区
git checkout -b branch-name origin/branch-name  //在本地创建和远程分支对应的分支
  
//标签管理
git tag <tagname>  //新建一个标签
git tag -a <tagname> -m "message"  //指定标签信息
git tag  //查看所有标签
git push origin <tagname>  //可以推送一个本地标签;
git push origin --tags  //可以推送全部未推送过的本地标签;
git tag -d <tagname>  //可以删除一个本地标签;
git push origin :refs/tags/<tagname>  //可以删除一个远程标签。

// Git设置本地用户名和邮箱
git config --local user.name "xxx"
git config --local user.email "xxx@xx.com"

// 查询
git config user.name
git config user.email

3、git代码提交

// 正常操作 [第一步]
git add . // 代码添加暂存区
git commit -am "xxx" // commit
git pull --rebase  // 拉取最新代码
git push origin HEAD:refs/for/${目标分支} // release

// 拉取远程代码可能出现冲突 [第二步]
git add .
git stash // 暂存本地更改
git pull
git stash pop  // 拉出本地,解决冲突
git commit -am "xxx"
git push origin HEAD:refs/for/xx

// 提交上去后,你觉得[代码有问题]或者[检视意见修改]需要修改 [第三步]
git add .
git commit --amend // 按esc,输入":q"
git push origin HEAD:refs/for/xx

// 提交上去后,代码有冲突,
先在gerrit上面把代码提交abandon掉
git reset --soft HEAD^
执行第二步

// 切换分支
git checkout -b feature-B16-cart origin/feature-B16-cart

4、如何将某一个分支的部分代码合并到另外一个分支上面

(1)git log

在A分支上通过git log 查看日志;将自己提交的该功能对应的hash值整理出来;

(2)git checkout --track origin/B

如果本地没有B分支,需要先将B分支从远程仓库拉到本地仓库(如果本地有B分支,并且已与远程对应的B分支已关联;无需这一步,直接到下一步)

(3)git checkout B

切换到B分支

(4)git cherry-pick b5dc0dd

在B分支上操作:通过git cherry-pick <commit对应的hash值>将当前hash对应提交的代码合并到B分支上去

注意

每一次合并都可能会产生冲突,如果产生冲突,先解决冲突,然后将代码commit到本地仓库即可;测试无误之后,再将合并后的代码push到远程仓库。切记!

// 单个commit合并 
git cherry-pick commitid
// 多个分开的commit一起合并
git cherry-pick commit-id1 commit-id3 commit-id6
// 多个连续的commit合并
git cherry-pick commitid1..commitid8  // 将commitid1到commitid8之间的所有提交合并到B分支上(不包含第一个commitid)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值