git 常用语句及含义

git 常用语句及含义

有些命令很有用,但不常用,所以容易忘。
本文纯粹是为这类命令方便查表,所以没学过 git 的建议去看廖某的教程。

最近忘记的命令写在最前面。

  • 加速 git clone 的网站
  • git commit --amend 修改上一次的提交。或者理解成:这次正常 commit,同时上次的 commit 记录删除,上次的修改内容归到这次。用途一般是修改低级错误,比如错别字、调整代码一个缩进;
  • git reset --soft 从某个角度也可以理解为“修改上一次的提交” 但上次的 commit 记录还在。用途和 amend 相比,侧重于可以回顾,例如刚刚提交的代码有个 bug,赶紧改一下,以后还可以回顾这个错误吸取教训。
  • git diff --stat 各文件 + + - - 情况,-- numstat 是数字化的情况
  • git clone --depth 10 url 克隆到最近 10 次 commit,一般 --depth 1 比较快

安装及初始化篇 —— 常用:添加 ssh key

先用自己熟悉的工具如 brew、apt-get 安装 git (略过)

语句含义
git查看是否安装
git config --global user.name “myname”配置名字
git config --global user.email “myemail”配置邮箱
git config --list查看配置,初次运行必须配置姓名邮箱

然后需要添加自己的 GitHub ssh key:

终端 ssh-keygen -t rsa -C “myemail” 创建 ssh key,一路回车,然后打开 github.com 登陆后,点击 https://github.com/settings/keys ,点击 new ssh key,输入自定义标题,key 的内容是刚从生成的key文件内容复制粘贴过来。我的key路径在 ~/.ssh/id_rsa,每个人电脑位置可能不一样。

初始化/克隆项目篇 —— 常用:不完全克隆(减少下载时间)

项目地址设为 url;某branch名称设为 b_name

语句含义
git initcd 到项目文件夹下执行,生成隐藏的 .git 文件夹
git clone url完整克隆整个项目
git clone --single-branch -b b_name url完整克隆某个分支,注意必须带 single-branch,否则还是整个项目
git clone --depth 10 url克隆最近几次commit,我最喜欢的功能——只克隆最近1次commit,下载超快!;可以结合某分支一起使用
git remote add url将远程库与本地仓库关联,如果不存在本地库,则视为克隆

开发过程中必用篇 - 基本不会忘

1 工作区
2 暂存区(stage文件夹)
3 版本库(master文件夹)

语句含义
git add filesadd是把 1 内容 复制到 2 中,常用 git add ./ 删除操作也可以用这个命令实现,手动删除后add,因此我不怎么用 git rm
git commit -m “msg”把 2 内容 剪切到 3 中,同时加注释 msg
git pull 远程主机名 远程分支名:本地分支名从另一个存储库或本地分支获取并集成(整合);不加任何参数是取主机分支与当前分支合并;等于下面两句(不必用):
git fetch 分支名获取某分区
git merge 分支名把它与当前分支(master)合并
git push origin dev设origin是远程库的默认名 ,dev是要推送的分支。不加参数是当前分支推送到主机分支。 -u 选项是记住当前参数,下次可以不加参数使用上次记住的分支参数
git commit --amend修改上一次的提交。或者理解成:这次正常 commit,同时上次的 commit 记录删除,上次的修改内容归到这次。用途一般是修改低级错误,比如错别字、调整代码一个缩进

经常出现 git pull 后要手动解决冲突。新手可能不熟悉怎么搞,打开冲突的文件,仔细观察下就明白,然后修改“不正常”的内容后 commit、push 即可。

开发过程中常用篇 —— 状态 status diff log reset

语句含义
git status查看仓库状态,理解 1、2、3 概念,看输出就明白
git diff filename比较 1 中某文件 和 3 中某文件的区别,看输出就明白,这是仔细看某个文件;git diff --stat 直接看整体的各文件 + + - - - 情况,-- numstat 是数字化的 + + - - - 情况
git log查看commit记录(每条记录有不规则id,作者,邮箱,日期
git reflog超级简洁的展示所有版本(含id,HEAD,操作注释),git log是当前控制台有的记录
HEAD当前版本指针,上一个是HEAD^,上上 HEAD^^,上100 HEAD~100
git reset --hard HEAD^跳到某版本,hard 后是版本名,可以用 HEAD 系列指针表示,也可以用 git log里获得的 commit id,只需输前几位(标志唯一即可)
git remote查看远程库的信息 ,加 -v更详细

开发过程中常用篇 —— 分支

语句含义
git branch dev创建新分支
git checkout dev切换到分支dev,然后正常的 add、commit
git checkout -b dev创建并切换到新分支dev
git branch查看当前分支,前面有*的是当前的
git checkout – name还原操作,情况A: 1改了(包括删除,修改内容等),2空 3没改 则 赋值 1 = 3;情况B. 1改完add到2了,1又改了,3啥没改 则赋值 1 = 2
git merge dev合并(master)
git merge --no-ff -m “merged” dev合并 且创建新的commit
git branch -d dev删除dev;-D 强行删除一个没有被合并过的分支
git config --global alias.br branch配置别名,br就代表branch,更多的自己配,例如很多人为了方便把 git commit -m 简写为 gc 还是挺舒服的,自行百度
git reset --soft从某个角度也可以理解为“修改上一次的提交” 但上次的 commit 记录还在。
用途和 amend 相比,侧重于可以回顾
如刚刚提交的代码有 bug,改了以后还可以回顾这个错误吸取教训。

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用 git branch --set-upstream branch-name origin/branch-name。

Pull Request / Merge Request

1
先 fork 正式仓库
git clone 自己 fork 出来的仓库

2
// 为了能获取正式仓库的更新,添加一个 upstream
git remote add upstream 正式仓库地址
git pull upstream branch_name 获取正式仓库的更新

3
// 开始写代码,中间可以自己开一个分支。写完之后
git add .
git commit -m “something”
git push origin 先推到自己的仓库

然后到项目网页或公司自己的工具提 Pull Request 或者 Merge Request

不常用篇 —— stash

某些条件下用

语句含义
git stash保存当前工作现场,不add,不commit
git stash list查看之前的工作现场
git stash apply stash@{0}恢复list里的现场0,不写stash@{0}也可以
git stash drop删除原 stash
git stash pop恢复最近的现场,删除原stash

不常用篇 —— tag

怎么说呢,我也没有什么经常 release 的项目,加不加版本号也无所谓,不常用吧。

语句含义
git tag v1.5给最新提交的commit上一个标签
git tag v1.4 a453fs2413给对应id的commit打标签
git tag查看标签(按字符排序)
git tag -a v0.1 -m “released” 3628164带有说明的标签,用-a或-s分别指定普通、私密标签名,-m指定说明文字
git show v1.5查看标签的详细信息
git tag -d v1.2删除标签
git push origin v1.0创建的标签默认存储在本地,这个是推送某个标签到远程,全部是 --tags
git push origin :refs/tags/v0.9删除远程标签

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值