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/远程分支名         //拉取某一分支
相关推荐
呆萌的代Ma5 分钟前
Git不强行推送,撤销最近几次的提交
git
透明的玻璃杯3 小时前
git应用
git
炸炸鱼.4 小时前
Git+Jenkins实战(一):从零搭建自动化发布与回滚系统(附完整代码)
git·jenkins
言6667 小时前
要忽略前端依赖包node_modules的文件在目录下 git暂存区消失
git
胡小禾7 小时前
Git Worktree
git
程序员小羊!8 小时前
18 GIt
git
怣疯knight8 小时前
Git 本地分支关联远程分支 常用命令汇总
git
ANNENBERG8 小时前
git分支开发管理
git
坤坤藤椒牛肉面8 小时前
GIT的使用
git
w3296362718 小时前
使用 OpenCode 在 Windows 上加速安装 Playwright 的完整指南
windows·git