Git常用命令简介
还原本地未提交的修改
git restore 文件名 / 正则表达式 *
git restore --staged 文件名 // 针对add后的还原
创建及切换分支
git branch main_dev
git checkout main_dev
上两步等价于
git checkout -b main_dev
删除本地分支
必须先切换到master分支,再执行删除分支命令
git pull
git checkout master
git branch -d XX :普通删除分支
git branch -D XX :强制删除分支
删除远程分支
git push origin --delete main_dev
本地新建分支并提交后的正确push方式
不能直接使用 git push
git push --set-upstream origin main_dev
执行上述命令后,gitlab web端才能看到分支
将分支main_dev的提交合并到主分支main
git checkout main
git merge main_dev
git push // 不执行此命令,信息不会被同步到远端
解决冲突
冲突的产生-->>如果修改了同一个文件的同一行,此时git pull后就会产生冲突
此时算法不知道应该是用哪个提交
方式1:配置工具
先配置mergetool工具 C:\Users\Administrator\.gitconfig
git bash执行命令 git mergetool
在弹出来的框中处理冲突
方式2:直接手动修改
放弃解决冲突
git merge --abort
执行此命令后,git仓库会回到merge前的状态
查看所有分支
git branch -a
查看详细历史
git log -p // 可以看到每个修改的详细情况
回顾自己在哪个commit中修改了 readme.txt 文件
git log --stat readme.txt // 查看简单的修改
查看commitId为5e68b0d8且文件为 readme.txt 改动
git show 5e68b0d8 readme.txt
对比暂存区和上一条提交
git diff --staged/cached
git diff // 对比工作目录和暂存区
git diff HEAD // 对比工作目录和上一次提交的不同
git rebase操作
在新位置重新提交
git commit --amend
在提交未push之前,可以用来修改commit message,
基本原理是生成新的 commit替换最近一次commit,避免新增一个commit
其本质是修改缓存区,这个仅对最近一次提交有用
git reset hard
擦掉所有的改动,重置工作目录
git stash
当有已经紧急事情要做,需要吧当前工作目录暂时清理干净
执行git stash 后,当前工作目录原有的东西会被“藏匿”到本地,临时保存起来
而工作目录的改动就被清空了,然后直接切分支该干嘛干嘛
紧急工作执行完以后,切回你的工作分支,然后执行 git stash pop 即可恢复修改
注意:没有被 add 的文件不会被stash起来,如果想把这些文件也藏匿,加-u参数
-u 参数的含义 include-untracked的缩写
git stash -u
tag
用于在关键版本处打标记,不能移动
cherry-pick
一种特殊的合并操作,可以点选一批commit,按序合并
git config
对git做基础配置
git config --help 查看帮助