git 常用命令

git 是最常用的版本控制工具

基本命令

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 推出

    --学无止境,爱拼才会赢

posted @ 2022-10-18 10:29  struggle-way  阅读(33)  评论(0编辑  收藏  举报