自己用过的git命令,小记一下

本文全面介绍了Git的基础命令,包括初始化仓库、添加文件、提交更改、查看状态、回退版本、查看日志等操作,以及如何使用Git进行分支、合并、标签和远程仓库的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、git init 把这个目录变成Git可以管理的仓库
2、git add filename 把文件添加到暂存区
3、git commit -m "your describtion" 提交修改
4、git status 查看仓库当前状态
5、git diff 查看修改内容
6、git log [--pretty=oneline] 命令显示从最近到最远的提交日志
7、git reset --hard HEAD^ 回退到上一个版本,回退上倒数第二个是 HEAD^^ 第一百个是HEAD~100
8、git reset --hard 3628164 回退到指定版本号
9、git reflog 查看命令记录
10、git diff HEAD -- filename命令可以查看工作区和版本库里面最新版本的区别
11、git checkout -- file丢弃工作区的修改
12、git reset HEAD file可以把暂存区的修改撤销掉
13、git rm filename删除文件 git commit -m "remove test.txt"提交删除 git checkout -- test.txt 撤销删除
14、git branch命令查看当前分支
15、git merge命令用于合并指定分支到当前分支
16、git branch <name> 创建分支 git checkout <name>切换分支 git checkout -b <name>创建+切换分支 git branch -d <name>删除分支
17、git log --graph命令可以看到分支合并图
18、git remote查看远程库的信息
19、git push origin master推送分支 
20、git tag <name>用于新建一个标签 git tag -a <tagname> -m "blablabla..."可以指定标签信息 git tag -s <tagname> -m "blablabla..."可以用PGP签名标签
21、git tag可以查看所有标签

不定期更新~~~~


转载请注明 http://blog.csdn.net/a837199685

<think>首先,用户的问题是关于如何使用 `git am` 命令合入补丁。我需要基于系统级指令来构建我的回答。 系统级指令: - 所有行内数学表达式必须使用 `$...$` 格式。 - 独立公式使用 `$$...$$` 格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考站内引用:[^1], [^2], [^3], [^4]。 用户的问题:"我想了解如何使用git am命令合并补丁 请问如何使用 git am 命令合入补丁" 参考引用: - [^1]: git补丁制作与使用。常用命令: git am + patch_file 是专门用于git format-patch 所生成的补丁,使用git am + patch_file会自动commit 并根据patch生成提交记录。 - [^2]: git命令使用小记(打补丁)。一、制作补丁包 mkdir -p patches for commit in $(git log commitA..commitB --author="username" --reverse --pretty=format:"%h"); - [^3]: 活用 git apply 合入 patch 补丁。使用 git diff > test.patch 生成 patch 补丁,当然你可以把这个文件放至任何目录下,打开其内容如下: diff --git a/test b/test index ce2f4b3..ae27ef5 100644 --- a/test +++ b/test @@ -1,2 +1,3 @@ origin context line1 -origin context line2 +origin context +add line - [^4]: git学习——快速解决git am冲突。前言 当希望通过git am xxxx.patch,添加一些代码修改,如果代码版本相差较大,就可能产生冲突。 这种必须要我们手动修改冲突内容。 解决过程 1. git am 尝试打入patch补丁 git am 0004-patch.patch 2. git apply --reject生成冲突文件 执行此命令,将自动合入 patch 中不冲突的代码改动,同时保留冲突的部分。这些存在冲突的改动内容会被单独存储到目标源文件的相应目录下,以后缀为 .rej 的文件进行保存。 git apply --reject 0004-patch.patch 3. git status查看冲突文件 git status 4. 解决冲突 打开xxx.rej文件,例如这里的virtio-gpu.h.rej 其中包含了冲突内容,进入到对应的源码文件中,将冲突部分手动改进去就可以了。 改完后,将对应的.rej文件删除掉。 # 查看 git status 5. git add xxx 将解决的冲突修改,添加到暂存区 git add include/hw/virtio/virtio-gpu.h 6. git am --resolved git am --resolved 继续完成,1中被中断的 patch 合入操作。 如下图所示,applying:xxx,表示成功将该patch完整的加入到了项目代码中 参考文章 1. 定位和解决git am冲突的方法 我需要构建一个结构清晰的回答: 1. 解释 `git am` 是什么。 2. 描述基本用法。 3. 包括冲突处理。 4. 添加引用标识。 5. 生成相关问题。 6. 使用中文。 由于用户的问题中没有数学表达式,我不需要添加LaTeX数学部分,但指令说必须使用,所以我应该确保如果有数学部分就用,但在这里可能不相关。指令说“所有行内数学表达式必须使用$...$格式”,但在这个上下文中,git命令没有数学,所以我可能不需要添加任何数学。但为了安全,我可以避免它,除非必要。 回答结构: - 介绍 `git am`。 - 基本步骤使用 `git am`。 - 处理冲突的步骤。 - 生成相关问题。 引用添加:在引用段落末尾添加引用标识。例如,如果我引用[^1],就在那段末尾加[^1]。 最后,生成相关问题部分,用“§§相关问题§§”开头。 完整回答框架: 1. **介绍 `git am`**:解释命令的作用,基于引用。 2. **基本用法**:如何用 `git am` 合入补丁。 3. **冲突处理**:如果发生冲突,如何解决。 4. **相关问题**:列出几个相关问题。 使用引用: - 从[^1]:`git am` 是专门用于 `git format-patch` 生成的补丁。 - 从[^3]:生成补丁的方法。 - 从[^4]:解决冲突的详细步骤。 步骤: 1. 确保补丁文件是 `git format-patch` 生成的。 2. 运行 `git am patch_file`。 3. 如果冲突,使用 `git apply --reject` 等步骤。 现在,写回答。</think>### 如何使用 `git am` 命令合入补丁 `git am` 是 Git 中一个专门用于应用补丁文件的命令,它特别适用于处理由 `git format-patch` 生成的补丁文件。与 `git apply` 不同,`git am` 会自动创建提交记录,并将补丁中的更改直接应用到当前分支的提交历史中[^1]。这在协作开发中非常有用,例如在邮件列表或代码审查中传递补丁。下面我将一步步解释基本用法和冲突处理方法,确保您能顺利合入补丁。 #### 1. **基本用法:合入补丁文件** `git am` 的核心功能是读取补丁文件并自动应用更改。以下是标准步骤: - **前提**:确保补丁文件是用 `git format-patch` 生成的。这种文件格式包含了提交元数据(如作者、时间戳),这使 `git am` 能正确重建提交历史[^1]。如果补丁文件是通过其他方式(如 `git diff`)生成的,`git am` 可能无法正确处理。 - **命令格式**: ```bash git am <patch_file> ``` 例如,如果补丁文件名为 `fix-bug.patch`,运行: ```bash git am fix-bug.patch ``` 执行后,`git am` 会自动: - 应用更改到工作区。 - 创建一个新的提交,并使用补丁中的元数据(如提交消息)。 - 输出类似 `Applying: [提交消息]` 的确认信息[^1]。 如果操作成功,补丁就被完整合入到当前分支。您可以用 `git log` 查看新提交。 #### 2. **处理冲突:当补丁无法直接应用时** 如果目标代码与补丁有较大差异(如文件内容变更),`git am` 可能中断并报告冲突。这时需要手动解决冲突。以下是基于引用[^4]的详细步骤: - **步骤 1: 尝试应用补丁并检测冲突** 运行 `git am` 命令: ```bash git am fix-bug.patch ``` 如果冲突发生,Git 会输出错误信息(如 `Patch failed at [提交信息]`),并暂停应用过程。 - **步骤 2: 使用 `git apply --reject` 生成冲突文件** 执行以下命令: ```bash git apply --reject fix-bug.patch ``` 这会将不冲突的部分自动应用到代码中,冲突部分则保存为 `.rej` 文件(例如 `main.c.rej`)。这些文件位于源文件相同目录下,包含冲突的具体内容[^4]。 - **步骤 3: 查看冲突状态** 运行: ```bash git status ``` 这会列出所有冲突文件(如 `main.c.rej`)和修改过的文件。 - **步骤 4: 手动解决冲突** 打开 `.rej` 文件(如 `main.c.rej`),它用 diff 格式显示冲突行(例如 `-` 表示删除,`+` 表示添加)。编辑对应的源文件(如 `main.c`),手动合并冲突内容。完成后,删除所有 `.rej` 文件[^4]。 - **步骤 5: 添加解决后的文件** 使用 `git add` 将修改标记为已解决: ```bash git add main.c # 替换为您的文件名 ``` - **步骤 6: 继续应用补丁** 运行: ```bash git am --resolved ``` 这会完成中断的 `git am` 过程,并创建提交。成功后,输出 `Applying: [提交信息]`[^4]。 通过以上步骤,您能高效处理冲突,确保补丁完整合入。注意,`git am` 最适合 `git format-patch` 生成的补丁;对于普通 diff 补丁,建议先用 `git apply` 测试[^3]。 #### 3. **最佳实践** - **生成补丁**:使用 `git format-patch` 创建补丁。例如,生成从提交 A 到 B 的补丁序列: ```bash git format-patch commitA..commitB -o patches/ ``` 这会在 `patches/` 目录下生成多个 `.patch` 文件[^2]。 - **测试补丁**:在应用前,用 `git apply --check patch_file` 检查兼容性,避免意外中断。 - **性能**:`git am` 比手动应用更高效,因为它自动化了提交过程,减少了人为错误。 总之,`git am` 是一个强大的工具,能简化补丁管理流程。通过结合自动提交和冲突处理机制,它确保了代码变更的可追溯性和一致性[^1][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值