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 查看帮助
posted @ 2022-03-18 21:45  bhz  阅读(74)  评论(0编辑  收藏  举报