git 常用命令(更新)
git 是最常用的版本控制工具
以下操作环境
win10 powershell
git version 2.35.0.windows.1
基本命令
git init
git init 初始化本地仓库
git status
git status 查看 git 状态
git add
git add filename 向本地仓库增加一个修改项。添加到文件树目录中
取消 add 操作 使用 git rm --cache
git commit
向远程数据库提交修改 some_message 为必填项
git commit -m "some_message"
远程仓库
git remote 添加远程仓库 命名为 origin
git remote add origin
clone 复制远程仓库
git clone
git push
将 commit 提交到 origin 仓库的 master 分支
git push -u origin "master"
或者直接 git push
git pull
git pull 从远程数据库拉取更新
git pull
例如
git pull 或者 git pull origin master
git pull 是 git fetch 和 git merge 两种步合并
git fetch 会拉取服务器到本地,建立一个匿名分支
git merge 将这个匿名分支,合并到本地的 master
git log
git log 查看日志
git log --oneline 以文本形式在一行中显示提交的信息
放弃修改
通过 git status 获得提示
如果是修改了本地文件,并没有 add 到本地仓库
那么可以使用 git restore
如果使用了 add 到了本地仓库
可以使用 git restore--staged
如果是使用了 commit
可以通过 git revert HEAD 撤销本次操作。会有一个编辑窗体要求输入日志
如果需要撤销多次,可以通过 git revert HEAD~[数字] 撤销更多操作,下标从 0 开始 (HEAD 相当于 HEAD~0)
如果是提交错了分支
可以通过 git cherry-pick 将提交拿到新的分支来
例如 git cherry-pick 8397cf0
删除掉原来的提交 git
git revert HEAD
分支详解
master 分支
用来合并的主分支
topic 分支
用来做开发的分支,除了 merge 分支之外的其他都属于 topic 分支
HEAD 标签
HEAD 标签用来指向当前分支最后一次更新的位置
HEAD ~(tilde) 和 ^(caret) 就可以指定某个提交位置
chekout 切换分支
git checkout HEAD~1 切换到当前分支的前一个提交位置
merge 和 rebase 合并分支
merge 就是合并,两条路汇聚到一起
rebase 就是重定向,将分支的路直接接到主路后面
merge 的冲突在修改之后,commit 就行了
rebase 的冲突在手动处理完之后
rebase --continue 提交修改
rebase --abort 取消 rebase
branch 建立分支
git branch branch-name
中间加入 -d 作为删除分支
git branch -d branch-name
git branch 显示所有分支
带 * 标识的是当前分支
常用分支名称
主分支 master
研发分支 develop
紧急修复 hotfix
发布 release
功能 feature
标签
git 有两种不同的标签
轻标签和注解标签
注解标签有三个属性:名称、注解和签名
轻标签只有一个名称属性
因此轻标签只是暂时一次性使用
打标签
git tag
git tag -a
git tag -am
查看所有标签
git tag
git tag -n 显示注解
删除标签
git tag -d
删除指定的标签
改写提交
amend 修改
修改最近一次的提交注解,或者补充提交档案
补充提交
revert 取消
revert 取消指定的提交内容
不能随便删除已经发布的提交
git revert HEAD 取消本地提交
reset 丢弃提交
有三种不同的方式
hard 会修改本地文件和本地数据库
mixed 会修改本地,不去修改数据库
soft 本地文件目录和元数据目录都不修改
cherry-pick 提取别的分支的提交到本地分支
主要是用于将弄错的分支移交到正确的地方
rebase i
改写、替换、删除、或者合并提交
merge squash
在合并分支时,将分支的内容合并成一个修改,添加到分支
例如
git merge --squash
常见错误
src refspec master does not
没有 add 没有 commit 不能提交
冲突
在 git push 出现
![rejected]
error : failed to push some refs to
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This usually caused by another respository pushing
hint: to same ref. You may want to first integrate the remote changes
hint:(e.g. , 'git pull ...') before pushing again
存在冲突,需要先处理冲突
先 pull 下来看看
git log 无法退出
可以输入 q 推出
学习资料
猴子也能学会的 git 入门
https://backlog.com/git-tutorial/cn/
博客园的 git
https://www.cnblogs.com/wang_yb/p/3867221.html
图解学习
https://codechina_dev.gitcode.host/learn-git-branching/?NODEMO=&locale=zh_CN
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了