git 常用命令大全
git 命令归纳总结
1.第一次使用 git,配置用户信息
- 配置用户名:
git config --global user.name "your name";
- 配置用户邮箱:
git config --global user.email "youremail@github.com";
2.查询配置信息
- 列出当前配置:
git config --list;
- 列出 repository 配置:
git config --local --list;
- 列出全局配置:
git config --global --list;
- 列出系统配置:
git config --system --list;
3.初始化仓库
- 新建一个本地仓库:
git init
- 从远程 git 仓库复制项目:
git clone 项目对应的仓库地址 新的项目名
4.提交文件到暂存区
5.查看信息
- 查询当前工作区所有文件的状态:
git status;
6.提交文件到版本库
- 约定式提交,下载 vscode 的插件 git graph
- 提交暂存的更改,会新开编辑器进行编辑:
git commit
- 提交暂存的更改,并记录下提交信息:
git commit -m "you message"
- 将文件全部暂存然后提交,等于同时执行 git add ./ 和 git commit -m:
git commit -am
- 对最近一次的提交的信息进行修改,此操作会修改 commit 的 hash 值:
git commit --amend ;会进入 vim 的交互式页面, 输入 i 进入编辑状态; :wq 保存退出(英文冒号); :q! 不保存退出
7.从远程仓库拉取代码并合并到本地
- 从远程仓库拉取代码并合并到本地,可简写为
git pull 等同于 git fetch(拉取修改) 和 git merge(合并到本地):git pull <远程主机名> <远程分支名>:<本地分支名>
8.git push将本地代码推到远程仓库
git push 别名 分支名 (输入用户名 密码; 推完之后会附带生成远程跟踪分支)
9.分支操作
- 新建本地分支,但不切换:
git branch 分支名
- 查看当前本地所有分支:
git branch
- 查看远程分支:
git branch -r
- 查看本地和远程分支:
git branch -a
- 删除本地分支:
git branch -D 分支名
- 重新命名分支:
git branch -m 老分支名 新分支名
git checkout 分支名 切换分支
git branch -d 分支名 删除空的分支,或者已经被合并的分支,不能自己删自己,要先切换到主线上,才能删分支
git branch -D 分支名 强制删除(因为会提示分支还未合并,不能删除)
git checkout -b 分支名 新建一个分支,并且默认直接切换过去
git merge 分支名 在主分支上合并一个分支
- 会提示:Fast-forward 快进合并(我的分支更新的版本在主线指针的后面,快进合并就是直接把主线的版本更新到分支的最新版本处,即把 master 提升到 hotbug 处)
git branch 分支名 commitHash 在指定的提交对象上创建新的分支(时光机,想回哪里回哪里)
10.git rebase 把一个分支的修改合并到当前分支
- 分支 1 和分支 2 是基于同一个提交的:在
分支1上执行 git rebase 分支2 ,则会在那个提交后依次应用分支 2 的提交,应用完之后再依次应用分支 1 的提交,这样提交记录就会没有分叉而非常清晰
!!!注意:在执行上述代码的过程中可能会产生冲突,此时在每应用一次提交前都需要手动的解决冲突后才能完成本次应用的提交
11.git merge在主分支上合并一个分支
- !!!注意这条命令和 rebase 的区别:在没有快速合并的情况下会产生额外的合并记录,但是这里只需要解决一次冲突
- 会提示:Fast-forward 快进合并(我的分支更新的版本在主线指针的后面,快进合并就是直接把主线的版本更新到分支的最新版本处
12.git revert 回滚某次提交(不覆盖上一次提交,产生新的提交)
- 此操作
不会修改原本的提交记录,而是会新增一条提交记录来抵消某次操作,新增的 commit 记录的提交信息时自动生成的,以 Revert 开头,后面则是你想要回退的那次提交的提交信息
- 上一次提交信息有误,也可以使用命令会生成新的提交信息,你可以编辑提交信息,然后:wq 保存退出
回滚单个提交 原本的提交:A=>B=>C 执行 git revert B 后的提交:A=>B=>C=>B
git revert 想要回退到的提交所对应的 hash 值 针对普通 commit
git revert 想要回退到的提交提交所对应的 hash 值 -m 针对 merge 的 commit
13.git reset 回滚某次提交(用要回滚的提交覆盖上一次提交,少用)
git reset 想要回退到的提交所对应的 hash 值 回退历史记录
- !!! 注意:不推荐直接使用 git reset 命令,而是使用更加安全的 git revert 命令进行撤回提交。这样,提交的历史记录不会被抹去,可以安全的进行撤回。
14.git stash 暂存文件
- 使用场景,当你在项目的一部分上工作了很久,所有东西都进入了混乱模式,而你又不得不切换到另一个分支去做点事情,问题就是,你想不仅仅因为这么一小会的时间而特意去创建一次提交,就可以使用 git stash 将工作区的文件暂存起来,再切分支去修复其他代码,在修复完代码回来后再从堆栈中恢复保存的内容
git stash 将未完成的修改保存到一个栈上面
git stash save "message" 执行存储时,添加备注,方便查找。
git stash pop来应用储藏然后立即从栈上扔掉它 推荐使用这个
git stash apply 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即 stash@{0}
git stash apply stash@{$num}指定应用某个存储
git stash list 查看 stash 有哪些存储
git stash clear 删除所有缓存的 stash
15.git log 查看提交的历史记录(英文状态下按 q 退出)
16.git reflog 查看所有提交记录(包含已经合并或删除的)