一些常用的 git 操作
Clone Add Commit
这三个最常用的也没什么好说的
git clone git@github.com/xxx.git
git add .
git commit -m ''
git push origin master
这两天康了康自己的 commit log,发现一开始没有遵守规范导致特别混乱,就各种查询如何修改这个 log
Rebase
pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)
如果只是单纯的更改某一条 commit log
git rebase -i HEAD~10 //查看以上10条
// 然后想编辑哪一个log的信息就在那一行按 i 进入insert模式
// 将pick -> reword(r)
// 然后 esc -> :wq 保存退出
// 没有问题git会自动打开这一条的commit log 然后安装规范修改即可
// 修改完后使用
git push -f // 强制提交一波完成
如果想要合并多条 commit log
git rebase -i <commit-ID> // 这里填写要合并的log里最早的那条log的前一条
// eg. git log 查看的log从上到下为 1->2->3->4 要合并1,2,3 则使用git rebase -i 4(commit-ID)
// 按 i 进入insert模式 将2,3 两条log前面的pick->squash(s)
// 然后 esc -> :wq 保存退出
// 这里同上 会打开合并了的log
// 然后按照规范修改log即可,将合并前的多条log删除
// 在 # The first commit's message is: 下面写上诸如fix/feat/chore等更改
// 之后 esc-> :wq 保存退出
// 然后
git push -f // 提交即可
Fork
fork 别人的仓库起名为 upstream
点击 fork 后在自己目录下创建的叫做 origin
clone origin 到本地
// 长时间没更新 upstream代码比origin新怎么办
// 在本地使用
git remote -v // 查看 一般只要两条 origin(fetch/push)
// 添加upstream
git remote add upstream 'https://xxx/xx.git'
// 然后查看
git remote -v // 四条 origin(fetch/push) upstream(fetch/push)
// 然后fetch upstream
git fetch upstream // 获取upstream的更新
// 然后合并到本地分支
git merge upstream/master
// 这时候查看log
git log // 可以看到log已经包括更新的部分了
// 推送
git push // 此时自己github上fork的仓库已经同步更新了
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于