文章目录
前言
本文用于记录在日常使用git过程中实用的命令,并说明了每条命令的功能和使用方法。
如果有错误或不足之处,还望各位读者小伙伴们指出。
1. git add -p (交互式暂存)
功能:使用该命令,可以选择性的将文件或文件的一部分修改添加到暂存区(在处理复杂更改时很有效)。
使用方法:
使用git add -p
命令,然后逐块选择要暂存的更改
执行该命令后,git会逐块显示文件的更改,用户可以选择是否暂存某一块内容,常用选项为:
y #暂存当前块
n #跳过当前块
s #拆分当前块
e #手动编辑当前块(对当前块中的内容进行修改,要记得保存修改的内容)
q #退出暂存
2. git stash (临时保存工作区内容)
功能:临时保存当前工作目录的更改,以便切换到其他分支或者处理其他任务。
使用方法:
git stash #保存当前工作目录的更改
git stash list #查看存储进度
git stash apply #应用最近一次存储的进度(不删除)
git stash apply <num> #应用指定某次的存储进度(不删除)(其中,num为git stash list查看时的序列号)
git stash pop #应用并删除最近一次存储的进度
git stash drop <num> #删除指定某次的存储进度(其中,num为git stash list查看时的序列号)
git stash clear #清空所有存储
3. git rebase (变基)
功能:将一个分支上的更改应用到另一个分支上。可以帮助保持提交历史的线性,减少合并时的冲突。
使用方法:
git rebase <branch_name> #变基当前分支到指定分支
git rebase main #例如:将当前分支变基到main分支
git add <file>
git rebase --continue #如果提交过程中产生冲突,需要手动解决冲突,并保存冲突
git rebase --skip #如果某个提交导致的冲突不想解决,可以跳过该提交
git rebase --abort #如果在变基过程中出现问题,可以终止变基并恢复到变基前的状态
git rebase --onto <目标branch> <起始提交> <当前分支> #指定从某个提交之后开始变基
#例如,将feature-branch从提交abc123开始的提交,变基到main分支
git rebase --onto main abc123 feature-branch
4. git rebase -i (交互式变基)
功能:可以在变基过程中编辑、删除或合并请求
使用方法:
使用git rebase -i <commit_id>
常用选项为
pick #保留提交
reword #修改提交信息
edit #编辑提交
squash #将当前提交与前一个提交合并
fixup #将当前提交与前一个提交合并(不保留提交信息)
drop #删除提交
4. git cherry-pick (拣选提交)
功能:可以选择特定的提交并应用到当前分支,而不是合并整个分支(在需要从一个分支移植特定更改到另一个分支时非常有效)。
使用方法:
git cherry-pick <commit_id> #将commit_id提交应用到当前分支
git cherry-pick <commit_id1> <commit_id2> #将多个commit提交commit_id1,commit_id2应用到当前分支
git cherry-pick <commit_id1>^..<commit_id3> #将一段连续的提交从commit_id1到commit_id3的所有提交应用到当前分支
git add <file>
git cherry-pick --continue #手动解决cherry pick过程中的冲突,解决后需要标记冲突已解决
git cherry-pick --abort #取消cherry pick
git cherry-pick --skip #跳过当前提交(如果某个提交无法应用,可以跳过它)
注意:
cherry pick会创建一个新提交,即使内容相同,提交的哈希值也是不同的;
如果提交之间有依赖关系,需要按顺序cherry;
pick多个提交 频繁使用cherry pick可能导致提交历史混乱,建议在必要的时候使用。
总结
以上就是今天要讲的内容,本文介绍了git过程中部分实用的命令。本文作者目前也是正在学习git相关的知识,如果文章中的内容有错误或者不严谨的部分,欢迎大家在评论区指出,也欢迎大家在评论区提问、交流。
最后,如果本篇文章对你有所启发的话,希望可以多多支持作者,谢谢大家!