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

posted @ 2022-01-29 14:00  文工程序  阅读(210)  评论(0编辑  收藏  举报