Git 常用命令和知识点

1.git am xxxx.patch

git diff > 1.patch 

 git format-patch HEAD^  

1、执行命令 git am xxxx.patch 尝试直接打入补丁。因为我们使用的 patch 已经过时了,所以这一步肯定会报错并中断(注意,虽然命令停止执行了,但我们依然处于git am命令的运行环境中,可以通过git status命令查看到当前的状态)。

2、执行命令 git apply --reject xxxx.patch 自动合入 patch 中不冲突的代码改动,同时保留冲突的部分。这些存在冲突的改动内容会被单独存储到目标源文件的相应目录下,以后缀为 .rej 的文件进行保存。比如对 ./test/someDeviceDriver.c 文件中的某些行合入代码改动失败,则会将这些发生冲突的行数及内容都保存在 ./test/someDeviceDriver.c.rej 文件中。我们可以在执行 git am 命令的目录下执行 find -name *.rej 命令以查看所有存在冲突的源文件位置。

3、依据 步骤2 中生成的 *.rej 文件内容逐个手动解决冲突,然后删除这些 *.rej 文件。完成这一步骤的操作后,我们就可以继续执行 git am 的过程了。

4、执行命令 git status 查看当前改动过的以及新增的文件,确保没有多添加或少添加文件。

5、执行命令 git add . 将所有改动都添加到暂存区(注意,关键字add后有一个小数点 . 作为参数,表示当前路径)。

6、执行命令 git am --resolved 继续 步骤1 中被中断的 patch 合入操作。合入完成后,会有提示信息输出。

7、执行命令 git log 确认合入状态。

2、常用命令

git clone url

git add .

git status

git commit -m ''

git push <远程主机名origin>  <本地分支>:<远程分支>

git pull

#1.创建分支

git checkout -b name

git checkout -b name origin/name

#2.和远程分支关联

# git branch -u origin/master 

git branch -u remotes/origin/master

git remote remove origin

git remote add origin

3 回滚

1、本地commit 但是没有push 

git log

git reset --hard <commit_id>  放弃本地的所有改变,即去掉所有add到暂存区的文件和工作区的文件

–hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。
–soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。
–mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。

2. 本地commit 已经push

git revert <commit_id>  git push 

暂存当前工作目录 去修bug

git stash 

git stsh pop

0. WIP: Work in progress, do not merge yet.
// 开发中,传说中提 PR 的最佳实践是,如果你有个改动很大的 PR,可以在写了一部分的情况下先提交,但是在标题里写上 WIP,
//以告诉项目维护者这个功能还未完成,方便维护者提前 review 部分提交的代码。
1. LGTM: Looks good to me. // Riview 完别人的 PR ,没有问题(朕知道了 代码已经过 review,可以合并)
2. SGTM: Sounds Good To Me. //和上面那句意思差不多,也是已经通过了 review 的意思
3. PTAL: Please take a look. // 帮我看下,一般都是请别人 review 自己的 PR
4. CC: Carbon copy // 一般代表抄送别人的意思
5. RFC:  request for comments. // 我觉得这个想法很好, 我们来一起讨论下
6. IIRC: if I recall correctly. // 如果我没记错
7. ACK: acknowledgement. // 我确认了或者我接受了,我承认了
8. NACK/NAK: negative acknowledgement. // 我不同意
9. PR: Pull Request. 拉取请求,给其他项目提交代码
10. TBR: To Be Reviewed. 提示维护者进行 review
11. TL,DR: Too Long,Didn't Read. 太长懒得看。也有很多文档在做简略描述之前会写这么一句
12. TBD: To Be Done(or Defined/Discussed/Decided/Determined). 根据语境不同意义有所区别,但一般都是还没搞定的意思

13. PRD: Product Requirement Document. 产品需求文档

git 命令

场景一、 使用 git add . 添加了当前目录所有文件,导致提交了不应该的文件

  1. 首先使用 git status 看一下当前已经 add 了的文件
  2. 根据自身情况使用以下面命令
命令描述
git reset HEAD上一次add 里面的全部撤销了
git reset HEAD fileName对某个文件进行撤销了

场景二、 使用 git add 后,又使用了 git commit

  1. 首先使用 git log 查看节点
  2. 最后根据不同情况进行如下处理
  • 还没有 push 的情况,可以使用 git reset 命令
命令描述
git reset commit_id回退到上一个 提交的节点 代码还是原来自己修改的
git reset –hard commit_id回退到上一个commit节点, 代码也发生了改变,变成上一次的,本次的修改也丢了
  • 已经 push 的情况,可以使用 git revert 命令(还原已经提交的修改 ,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交)
命令描述
git revert HEAD撤销前一次 commit
git revert HEAD^撤销前前一次 commit
git revert commit-id撤销指定的版本,撤销也会作为一次提交进行保存
git revert提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值