Git一般工作流及常用Git命令

1. 工作流程

在多人使用Git进行开发,如果没有一个规范的工作流程,那么就很容易导致提交冲突,或者提交被覆盖等:这里假设主分支是work (一般不建议在master有很多人有提交权限),自己得分支交myBranch, 常规工作流如下:

  • 提交自己或换存(stash)当前所在分支的修改
  git commit -a #或 git stash
  • 切换到项目主分支
git checkout work
  • 拉取远程其他人最新的修改,一般此时不会产生冲突
git pull
  • 切换到自己的工作分支
 git checkout myBranch
  • 执行rebase(git rebase 和 git merge 的区别,但是应该注意的是应该尽量使用rebase)合并主干的修改,如果此时出现冲突在这时候处理冲突;
git rebase master
  • 回到主工作分支
git checkout  work
  • 合并自己所在工作分支的修改到主分支,因为在自己的分支已经处理过冲突此时不会产生冲突。
git rebase myBranch
  • 提交到远程主干
git push

经过上述的处理,在远程主干分支上的历史永远是线性的,每个人在自己的本地分支合并代码并解决冲突,就不会在主干上产生冲突。

2. 常用命令

git 修改用户名

  1. 使用下列命令修改,表示你这台机器上所有的Git仓库都会使用这个配置
   git config --global user.name "lym"
   git config --global user.email "lym@163.com"
  1. 只修改某个仓库 对应Git
     git config  user.name "lym"
     git config  user.email "lym@163.com"

git 回滚

git reset --hard *回退git log记录里的某次提交 ,--hard表示会将工作区、暂存区、本地仓库的所有提交的文件全都撤销(包括工作区文件,会删除);例如下面的命令:


git reset --hard a23c29ba043334552851f8ebe51202c78fd61506//git 回滚

同时还有 --mixed 意思是:不删除工作空间改动代码,撤销commit和git add 操作,这个一般是默认参数,也就是当我们执行git reset --mixed HEAD^ git reset HEAD^效果是一样的。

常用git stash命令

stash 暂存命令一般用于要切换到其他分支前暂存储当前分支的修改,回来后再恢复切换前的工作状态;一般的常用命令有:

git stash  //暂存修改
git stash apply//恢复暂存

stash 其他命令参数见下表:

命令解释
git stash save “save message”执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别
git stash list查看stash了哪些存储
git stash show显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show -p显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p
git stash apply应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
git stash pop命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
git stash drop stash@{$num}丢弃stash@{$num}存储,从列表中删除这个存储
git stash clear删除所有缓存的stash

查看某个文件的修改记录git show

在自己工作的分支下的目录下,执行下列命令

 git log --pretty=oneline 文件名

使用上述的命令可列出文件的所有改动历史,注意命令后面跟的是要查询的文件名,这里着眼于具体的一个文件,而不是git库,如果是库,对于较大项目来说可能就很庞大了;
通过上面命令就能拿到某次修改的哈希值,接下来使用下列命令:

 git show 56Kkd98gdjnnksdjksdu84938

使用git show即可显示具体的某次的改动的修改;

git 其他命令

git merge ***				合并某分支到***分支
git branch -d ***			删除***分支
git checkout -b ***		转换到一个分支***如果没有就创建一个新的
git checkout 命令加上 -b 参数表示创建并切换,相当于以下两条命令:
git branch ***		//创建一个 *** 分支
git checkout ***		//转换到 *** 分支
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

简简单单lym

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

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

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

打赏作者

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

抵扣说明:

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

余额充值