美文网首页
Git使用ABC

Git使用ABC

作者: xiongmao_123 | 来源:发表于2022-03-10 15:54 被阅读0次

git revert commit-id, 回退某个commit 操作,生成一个新的commit

使用例子,
明尼苏达大学研究人员发布致 Linux 内核社区的道歉公开信

git config --local user.name "your-name"
git config --local user.email "your-email"

git tag, 打标签,打版本
git tag v1.1.1
git tag -a v1.1.1 -m "about this version"
git show v1.1.1
git tag
git push origin --tags

git reset HEAD, 回退代码, commit也回退,重新生成一个新commit

查看共同祖先,三路合并分析
https://git-scm.com/docs/git-merge-base
git merge-base branch1 branch2
git merge-base commit-id1 commit-id2

回退某一个文件:
git checkout -- file 把暂存区的文件恢复到工作区
git reset commit-id file 把已经提交的文件恢复到暂存区
结合 git status, 看下输出信息

更改author, email

这个可以更改HEAD指向的commit

git commit --amend --author="Author Name <email@address.com>" --no-edit

如果 A-B-C-D-F, F指向HEAD, 如何修改commit-C的作者信息呢,
git rebase -i B,然后把C的pick改为edit,然后 :wq
然后会停止(pause)在C这个commit,然后分别运行下面命令即可,

git commit --amend --author="username <abc@qq.com>" 
git rebase --continue

git - How to change the commit author for one specific commit? - Stack Overflow

打补丁

git format-patch

git format-patch HEAD^               #生成最近的1次commit的patch
git format-patch HEAD^^              #生成最近的2次commit的patch
git format-patch HEAD^^^              #生成最近的3次commit的patch
git format-patch HEAD^^^^             #生成最近的4次commit的patch
git format-patch <r1>..<r2> #生成两个commit间的修改的patch(包含两个commit. <r1>和<r2>都是具体的commit号)
git format-patch -1 <r1> #生成单个commit的patch
git format-patch <r1> #生成某commit以来的修改patch(不包含该commit)
git format-patch --root <r1>             #生成从根到r1提交的所有patch

git am

git apply --stat 0001-limit-log-function.patch      # 查看patch的情况
git apply --check 0001-limit-log-function.patch     # 检查patch是否能够打上,如果没有任何输出,则说明无冲突,可以打上
(注:git apply是另外一种打patch的命令,其与git am的区别是,git apply并不会将commit message等打上去,打完patch后需要重新git add和git commit,而git am会直接将patch的所有信息打上去,而且不用重新git add和git commit,author也是patch的author而不是打patch的人)
git am 0001-limit-log-function.patch # 将名字为0001-limit-log-function.patch的patch打上
git am --signoff 0001-limit-log-function.patch # 添加-s或者--signoff,还可以把自己的名字添加为signed off by信息,作用是注明打patch的人是谁,因为有时打patch的人并不是patch的作者
git am ~/patch-set/.patch             # 将路径~/patch-set/.patch 按照先后顺序打上
git am --abort # 当git am失败时,用以将已经在am过程中打上的patch废弃掉(比如有三个patch,打到第三个patch时有冲突,那么这条命令会把打上的前两个patch丢弃掉,返回没有打patch的状态)
git am --resolved #当git am失败,解决完冲突后,这条命令会接着打patch

如何用git命令生成Patch和打Patch - 青山牧云人 - 博客园 (cnblogs.com)

  1. 归档打包
    git archive用法
    导出最新的版本库 git archive -o ../latest.zip HEAD

补:有次同事发我补丁,结果打不上,很奇怪,报错。然后用Android Studio自带的Apply Patch选项打上了。

相关文章

  • Git使用ABC

    git revert commit-id, 回退某个commit 操作,生成一个新的commit 使用例子,明尼苏...

  • Git Usage

    git 常用命令 git clone -v git@abc.com[mailto:git@abc.com]:efg...

  • git新建项目并上传到服务器

    首先,在本地新建文件夹abc,进入到abc里面,然后git init。这样就在本地初始化了一个git项目abc。 ...

  • Git ABC - 02

    Git Tag用法 练习: git tag v1 C1; git checkout v1; git tag v0 ...

  • Git ABC - 01

    概述 git是一种分布式版本控制软件。 Git is an example of a distributed ve...

  • 忽略已经提交的文件

    场景描述 比如之前Git中提交了abc.txt文件,现在在.gitignore文件中想忽略.txt文件,但是abc...

  • Git 本地创建分支并提交远程分支

    1.创建本地分支git branch 分支名,例如:git branch branch_abc 2.切换本地分支g...

  • Framework---Mybatis

    一、重点知识 git 监视的是文件内容的修改 $ git checkout -- abc.txt : 其实是用版本...

  • git ignore骚操作

    参考:git ignore的骚操作:https://www.jianshu.com/p/a49124700abc ...

  • Linux基础学习---Vim编辑器

    使用vim创建一个文件,使用命令 vim /tmp/abc,这样就可以使用vim编辑abc这个文件 (1)、i键插...

网友评论

      本文标题:Git使用ABC

      本文链接:https://www.haomeiwen.com/subject/ragfdrtx.html