git用法总结

这里写目录标题

    • [git stash](#git stash)
    • [git add](#git add)
    • [git commit](#git commit)
    • [git branch](#git branch)
    • 暂存区的一些操作
    • 移动提交记录
    • [git merge/rebase](#git merge/rebase)
    • [git submodule](#git submodule)
    • [git reset](#git reset)
    • [git revert](#git revert)
    • [git push](#git push)
    • [git pull](#git pull)

git的基本操作可以用下面的图来表示


git stash

当前工作区有修改,但是需要切换到其它分支做事情,可以用git栈先存起来,否则checkout时会丢失非暂存区内的内容,等切换回来后再拿出来,git栈是全局的

复制代码
git stash
git stash save "your message"		//添加说明
git stash list
git stash pop		//将最新存储的修改应用到当前工作目录,并从栈中删除
git stash pop stash@{n}		//将指定的存储修改应用到当前工作目录,并从栈中删除
git stash apply stash@{n}		//将指定的存储修改应用到当前工作目录

git add

添加文件到暂存区

复制代码
git add . //添加当前目录下所有被修改的文件到暂存区
git add <file1> <file2> ...   //添加指定文件到暂存区
git add <directory>          //添加指定目录及其所有文件到暂存区

git commit

把暂存区的内容提交到本地仓库,然后清空暂存区用于下一次的提交

复制代码
git commit -m "本次提交的相关信息"

git branch

复制代码
git branch		//显示所有本地分支
git branch branch-name		//创建一个新分支
git branch -d branch-name		//删除本地分支
git branch -m new-branch-name		//重命名本地分支
git branch -m <old-branch-name> <new-branch-name>

暂存区的一些操作

  • git status:查看当前工作区和暂存区的状态,包括已修改但未添加到暂存区的文件,已暂存但未提交的文件,以及没有任何更改的文件
  • git diff --cached:查看已经添加到暂存区但尚未提交的文件的具体变更内容
  • git reset HEAD file:从暂存区移除文件,但仍保留工作目录中的文件
  • git reset:完全清空暂存区,同样不影响工作目录

移动提交记录

1.HEAD

HEAD 是一个对当前所在分支的符号引用 ------ 也就是指向正在其基础上进行工作的提交记录,用git checkout哈希值可以分离HEAD去指向某一提交记录

2.git log

查看分支上所有提交记录的的哈希值

3.相对引用

复制代码
^:向上移动一个提交记录,git checkout main^
~num:向上移动num个提交记录,git checkout HEAD ~2

4.强制修改分支位置

用-f结合相对引用可以让分支指向另一个提交

复制代码
git branch -f main HEAD ~3		//强制将分支指向HEAD的第三级parent提交

git merge/rebase

功能上来看都是进行分支的合并,merge会保留原来的分支结构并产生一个新的提交记录,rebase是进行变基,把一个分支的提交在处理冲突后移到另一个基点上,但是注意rebase之前先把本地所做修改提交了,否则会丢失参考

复制代码
当前分支为main
git merge develop		//把develop分支合并到当前分支
git rebase develop		//把当前分支变基到develop分支,变基后还是在main分支上,但现在的main分支是基于develop分支上的,相当于main分支做了更新

git submodule

项目中有子模块的时候记得每次pull的时候也要

git reset

1.软重置(参考

只重置 HEAD 指针到指定提交,保留暂存区和工作目录的更改

复制代码
git reset --soft <commit>
git reset --soft HEAD~1

2.混合重置

重置 HEAD 和暂存区到指定提交,保留工作目录的更改

复制代码
git reset --mixed <commit>

3.硬重置

复制代码
git reset --hard <commit>

git revert

它可以撤销先前的提交并创建一个新的提交来还原更改,这个新的提交会撤销指定提交所做的更改

git push

本地仓库到远程仓库推送

复制代码
git push		//将当前分支的所有提交推送到远程仓库,通常是默认推送到与本地分支同名的远程分支
git push origin feature-branch		//指定具体的本地分支和远程分支来进行推送,这里将本地的 feature-branch 分支推送到远程仓库 origin 的 feature-branch 分支
git push -u origin <local-branch>:<remote-branch>	//将本地分支和远程分支建立跟踪关系,后续pull和push不再需要指定远程和分支
git push origin HEAD		//将当前分支的所有提交推送到远程仓库origin的对应分支,如果远程不存在会自动创建

git pull

拉取并合并远程仓库的当前分支的更改到本地当前分支,等同于fetch+merge

复制代码
git fetch		//只从远程仓库拉取更新,但不合并到本地分支
git merge		//合并到本地分支
git pull <remote> <branch>		//从指定的远程仓库和分支拉取并合并更改,也就是更新当前的分支
git checkout -b 本地分支名 origin/远程分支名         //拉取某一分支
相关推荐
如果是君14 小时前
【git使用】ubuntu下利用git工具提交一个工程
linux·git·ubuntu
吃鱼吃鱼吃不动了15 小时前
常用的 git 命令
git
迷路爸爸18016 小时前
Git Commit Message 规范:写出清晰、可维护的提交记录
git·python
前端赵哈哈16 小时前
Git 本地仓库操作指南:将未提交文件复刻至新分支(无需关联远端)
前端·git·github
神秘的猪头16 小时前
git应用初体验
git
麻辣璐璐1 天前
【新手小白版】Gerrit使用教程
git·gerrit·新手
AlexMercer10121 天前
Ubuntu从零开始配置Git
c++·git·ubuntu·gitee
胡西风_foxww2 天前
git 添加除了包含特定字符串的文件
git·字符串·文件·add·添加·特定·包含
parade岁月2 天前
Git 凭据管理器原理与多账号管理指南
git
zzzyulin2 天前
git note
git