git使用笔记

总结一下我常常用到的git操作。

一、常用命令

git checkout -t branch_name 建一个分支代码更新对应origin已有的同名分支并且换
git branch -a 查看分支
git branch -av 对比分支最后一次的commit的哈希码
git checkout -b branch_name 创建并切换
git checkout branch_name 切换 

git pull 拉代码更新

git status 查看缓冲池文件修改和提交状态
git add 添加到缓冲池,即commit的目标文件
git commit 本地提交
git commit -m 为提交添加说明
git commit --amend 为上一次提交修改提交说明
git push origin -u branch_name 推至远端库
git push -f 强制推,覆盖上一次push结果
git rebase -i HEAD~n 修改前N次提交历史,修改完不可恢复谨慎操作!用来合并提交使追踪log更清晰易读
git branch -d/-D name 删除分支(本地)
git checkout tag_name ,git checkout -b branch_name tag_name 拉某个tag的代码(tag相当于快照,不能直接改代码,需要创建对应分支)
git checkout file_path 修改某个已add的文件的状态为add前,修改撤销
git cherry-pick hash_code 复制某次提交至当前分支,形成一个新的commit

git remote show origin + git remote prune origin 或 git fetch -p 清除本地仍显示的远程已删除的分支名

git checkout hash_code + git tag -a tag_name tag_note + git push origin --tags 为代码的某次commit打tag

git stash 把修改和暂存临时存起来使工作区干净(commit之前的所有操作)

git stash pop取出上一次临时存起的修改

git reset --hard 回退到某次commit

git reset HEAD file_name 撤销git add,也就是绿色的path文字变红色的path文字



二、我经历过的两种使用git多人协作流程:

1,不使用fork,只在merge request的时候做权限拦截,向master或基于master的分支直接提交修改

流程:

clone master → pull更新 → 基于master或某功能分支切工作分支  → 修改本地 → rebase log → push origin branch → 网页mr至master或某功能分支切工作分支

优缺点:

流程简单,非常灵活,自己的分支push上去任何人可以看并且拉下来修改,好处是方便组内相互check,QR的时候run一遍也是十分方便,由于最终的mr操作可以设置权限,所以master代码安全性也还是有保障;不方便的是远端会产生很多人的工作分支,需要经常清理。rebase操作方便回溯历史,时间线清晰明了,但rebase操作有一定风险。

涉及到的命令:

1)建一个分支代码更新对应origin已有的同名分支并且换
git checkout -t branch_name 
2)修改前N次提交历史
git rebase -i HEAD~n ,然后根据提示选择要标记文件,修改后保存退出
3)push后又有了rebase操作后需要强行覆盖push
git push -f 
4)如果rebase依然没有解决时间线上混乱的情况,可以建一个干净的分支,把提交拿过来产生一个新日期的提交
git cherry-pick hash_code


2,创建fork并拥有其权限,用fork向master提交修改

流程:

将项目fork一份作为origin,原项目master设为upstream → clone origin到本地 → fetch + merge upstream保持更新→ 修改本地→ push到origin → 网页操作merge至master

优缺点:

流程严谨,工作分支只有自己有权限,所以很安全。缺点是无法组内通过运行来check,只能做读代码层面的review了。

涉及到的命令:

1)拉代码保持同步更新

git fetch upstream
git merge upstream/master
2)remote 添加 upstream 为master地址
git remote add upstream url
3)推自己的新分支到gitlab
git push upstream new_branch
4)查看origin(fork)和upstream(master server)
git remote -v  
5)config配置查看  url,name,email
git config -l 
6)修改origin
git remote set-url origin url

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值