Git 帮助

如果你忘记了命令或命令的选项,你可以使用 Git 帮助。

在命令行中,有几种不同的使用帮助命令的方式:

  • git command -help - 查看特定命令的所有可用选项
  • git help --all - 查看所有可能的命令

让我们看看不同的命令。

Git -help 查看特定命令的选项

任何时候,如果你需要帮助来记住特定命令的选项,你可以使用 git command -help:

这将显示特定命令的所有可用选项:

usage: git commit [] [--] ...

    -q, --quiet           suppress summary after successful commit
-v, --verbose show diff in commit message template Commit message options
-F, --file read message from file
--author override author for commit
--date override date for commit
-m, --message
commit message
-c, --reedit-message
reuse and edit message from specified commit
-C, --reuse-message
reuse message from specified commit
--fixup use autosquash formatted message to fixup specified commit
--squash use autosquash formatted message to squash specified commit
--reset-author the commit is authored by me now (used with -C/-c/--amend)
-s, --signoff add a Signed-off-by trailer
-t, --template
use specified template file
-e, --edit force edit of commit
--cleanup how to strip spaces and #comments from message
--status include status in commit message template
-S, --gpg-sign[=]
GPG sign commit Commit contents options
-a, --all commit all changed files
-i, --include add specified files to index for commit
--interactive interactively add files
-p, --patch interactively add changes
-o, --only commit only specified files
-n, --no-verify bypass pre-commit and commit-msg hooks
--dry-run show what would be committed
--short show status concisely
--branch show branch information
--ahead-behind compute full ahead/behind values
--porcelain machine-readable output
--long show status in long format (default)
-z, --null terminate entries with NUL
--amend amend previous commit
--no-post-rewrite bypass post-rewrite hook
-u, --untracked-files[=]
show untracked files, optional modes: all, normal, no. (Default: all)
--pathspec-from-file
read pathspec from file
--pathspec-file-nul with --pathspec-from-file, pathspec elements are separated with NUL character
Note: You can also use --help instead of -help to open the relevant Git manual page

Git help --all 查看所有可能的命令

要列出所有可能的命令,可以使用 help --all 命令:

注意:这将显示一个非常长的命令列表

$ git help --all

这将显示所有可能的命令列表。

合并分支和解决冲突

紧急修复已经准备好,现在让我们合并 master 和 emergency-fix 分支。

首先,我们需要切换到 master 分支:

git checkout master

现在,我们将当前分支(master)与 emergency-fix 合并:

git merge emergency-fix
更新 09f4acd..dfa79db
快进
index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

由于 emergency-fix 分支直接来自于 master,并且在我们工作时没有对 master 进行其他更改,Git 将其视为 master 的延续。因此,可以“快进”,将 master 和 emergency-fix 指向相同的提交。

由于 master 和 emergency-fix 现在本质上相同,我们可以删除 emergency-fix,因为它不再需要:

git branch -d emergency-fix
已删除分支 emergency-fix(是 dfa79db)。

合并冲突

现在我们可以切换到 hello-world-images 并继续工作。添加另一个图像文件(img_hello_git.jpg)并更改 index.html,以便显示它:

git checkout hello-world-images
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body> <h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>A new line in our file!</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div> </body>
</html>

现在,我们已经完成了在该分支上的工作,可以为该分支暂存并提交:

git add --all
git commit -m "added new image"

我们看到 index.html 在两个分支中都发生了更改。现在我们准备将 hello-world-images 合并到 master 中。但是,我们最近在 master 中所做的更改会发生什么?

git checkout master
git merge hello-world-images

自动合并 index.html

合并冲突(内容):index.html 中的合并冲突

自动合并失败;解决冲突,然后提交结果。

合并失败,因为在 index.html 的不同版本之间存在冲突。让我们来检查状态:

git status

在 master 分支上,你有未解决的路径。

(解决冲突并运行 "git commit")

(使用 "git merge --abort" 中止合并)

要提交的更改:

新文件:img\_hello\_git.jpg

新文件:img\_hello\_world.jpg

未解决的路径:

(使用 "git add ..." 标记解决)

两者修改:   index.html

这证实了 index.html 中存在冲突,但图像文件已经准备好并暂存以进行提交。

因此,我们需要解决冲突。在编辑器中打开文件:

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body> <h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<<<<<<< HEAD
<p>This line is here to show how merging works.</p>
=======
<p>A new line in our file!</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div>
>>>>>>> hello-world-images </body>
</html>

我们可以看到不同版本之间的差异,并按照我们的需求进行编辑:

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
<link rel="stylesheet" href="bluestyle.css">
</head>
<body> <h1>Hello world!</h1>
<div><img src="img_hello_world.jpg" alt="Hello World from Space" style="width:100%;max-width:960px"></div>
<p>This is the first file in my new Git Repo.</p>
<p>This line is here to show how merging works.</p>
<div><img src="img_hello_git.jpg" alt="Hello Git" style="width:100%;max-width:640px"></div> </body>
</html>

现在我们可以暂存 index.html 并检查状态:

git add index.html
git status

在 master 分支上,所有冲突都已解决,但你仍在合并中。

(使用 "git commit" 完成合并)

要提交的更改:

新文件:img_hello_git.jpg

新文件:img_hello_world.jpg

修改: index.html

冲突已解决,我们可以使用提交来完成合并:

git commit -m "merged with hello-world-images after fixing conflicts"

然后删除 hello-world-images 分支:

git branch -d hello-world-images
已删除分支 hello-world-images(是 1f1584e)。

现在你对分支和合并的工作方式有了更好的了解。是时候开始与远程仓库一起工作了!

Git .gitignore 文件:创建、示例规则和模式匹配

.gitignore 文件是用于指定 Git 忽略的文件和文件夹的配置文件。这意味着 Git 不会跟踪或包含在版本控制中,但它们仍然存在于你的工作目录中。以下是关于.gitignore文件的详细信息:

创建**.gitignore**文件

要创建一个.gitignore文件,请按照以下步骤操作:

  1. 打开终端或命令行工具。
  2. 导航到你的 Git 存储库的根目录。
  3. 创建.gitignore文件。你可以使用以下命令:touch .gitignore。这将在存储库的根目录中创建一个.gitignore文件。
  4. 使用文本编辑器打开.gitignore文件,你可以添加你要忽略的文件和文件夹的规则。

示例 .gitignore 文件

下面是一个示例.gitignore文件的内容,演示了一些忽略规则:

# 忽略所有 .log 文件
*.log # 忽略任何名为 "temp" 的目录中的所有内容
/temp/ # 忽略所有 .zip 和 .rar 压缩文件
*.zip
*.rar # 忽略特定文件
config.txt # 忽略特定文件夹及其内容
bin/
build/

这个.gitignore文件包含了各种忽略规则,例如忽略所有.log文件、名为"temp"的目录、.zip和.rar压缩文件、config.txt文件以及bin/和build/文件夹及其内容。

.gitignore 文件的规则如下:

  • 模式匹配:.gitignore中的规则使用模式匹配来匹配文件和文件夹。
  • 行注释:以#开头的行将被视为注释。
  • 文件匹配:你可以使用*来匹配任何字符,?来匹配单个字符,[]来匹配字符集,[!...]来否定字符集。
  • 目录匹配:如果模式以/结尾,则该模式仅匹配目录。
  • 递归匹配:使用``来匹配任何子目录。
  • 否定规则:使用!符号来否定已定义的规则。

示例规则包括:

  • *.log:忽略所有扩展名为.log的文件。
  • /temp/:忽略名为"temp"的目录及其内容。
  • bin/:忽略名为"bin"的文件夹及其内容。
  • !important.log:忽略所有.log文件,但不包括名为"important.log"的文件。

通过编辑.gitignore文件,你可以自定义哪些文件和文件夹应该被 Git 忽略,以便它们不会包含在版本控制中。这对于避免将不必要的或敏感文件提交到版本控制中非常有用。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

Git 教程:解密 .gitignore 文件、合并分支、解决冲突、及 Git 帮助的更多相关文章

  1. git使用,多分支合并代码解决冲突,git删除远程分支,删除远程master默认分支方法

    git使用,多分支合并代码解决冲突,git删除远程分支,删除远程master默认分支方法提交代码流程:1.先提交代码到自己分支上2.切换到devlop拉取代码合并到当前分支3.合并后有变动的推送到自己 ...

  2. 新手:git回滚代码,合并代码解决冲突

    回滚到某个tag: git reset --hard 70438034dc git push -f 合并---解决冲突---提交: Step 1. Fetch and check out the br ...

  3. Git合并分支或者冲突

     假设冲突文件是 test/TestCase.php  下面分5种情况讨论. 1.本地不变.   然后远程别人有更新.   git pull   这种最简单,没有冲突,本地工作区直接更新   2.我本 ...

  4. Git 忽略规则 .gitignore文件 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  5. 版本控制之三:SVN合并及解决冲突(转)

    转自 http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2408089.html 接下来,试试用TortoiseSVN修改文件,添加文件,删除 ...

  6. Git项目管理出现 .gitignore文件不起作用的解决

    在git管理项目的代码过程中总会有需要忽略的目录或者文件,比如编译过程中产生的目录和文件,这时候就需要 .gitignore来进行目录或文件的忽略了. 如果没有 .gitignore文件,可以自己手工 ...

  7. git项目.gitignore文件不生效解决办法

    配置好.gitignore文件如下: HELP.md /target/ !.mvn/wrapper/maven-wrapper.jar ### STS ### .apt_generated .clas ...

  8. SourceTree使用详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)

    前言: 俗话说的好工欲善其事必先利其器,Git分布式版本控制系统是我们日常开发中不可或缺的.目前市面上比较流行的Git可视化管理工具有SourceTree.Github Desktop.Tortois ...

  9. Git 初始化项目、创建合并分支、回滚等常用方法总结

    就在刚才查看资料时候, 看见一句话, 写的特别好: 当我的才华撑不起我的梦想的时候, 应该安静下来学习 配上我最喜欢动漫的一个角色: 红莲 1. Git 初始化项目 1). 创建新的知识库 echo ...

  10. git中使用.gitignore文件

    在进行协作开发代码管理的过程中,常常会遇到某些临时文件.配置文件.或者生成文件等,这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push ...

随机推荐

  1. instance must be started before calling this method

    解决方法 检查zk的连接数: 端口号: 数据库连接配置: zk的连接配置: 如果都没有问题,就重启容器.

  2. 【Python OO其二】设计模式之工厂模式(举例说明)

    工厂模式 工厂模式中的"工厂"实际上就是把类看成制造某种模板的工具(工厂),由这个类生成的实例除了本身自有的属性外,还可以通过指定的方式产出具有不同属性的同一类实例 比如:有一个面 ...

  3. 需要入门IT行业并且想做java后台小伙伴-简单谈谈后台开发Spring与SpringBoot

    1.Spring能做什么 1.1.Spring的能力 1.2.Spring的生态 https://spring.io/projects/spring-boot 覆盖了: web开发 数据访问 安全控制 ...

  4. 【Azure 应用服务】Azure Function Python函数中,如何获取Event Hub Trigger的消息Event所属于的PartitionID呢?

    问题描述 在通过Azure Function消费Event Hub中的消息时,我们从Function 的 Trigger Details 日志中,可以获得当前Funciton中处理的消息是哪一个分区( ...

  5. gorm整理

    目录 1. 约定 2. 结构体标签 3. 创建记录 4. 更新 5.删除 6. 查询 7.关联 8.链式操作 9.范围 10.多个立即执行方法的注意事项 11.错误处理 12.钩子 13.事务 14. ...

  6. 协议I2C

    SCL   SDA   同步,半双工 开漏+弱上拉,谁用这跟线,就下拉成低电平 想输出,去拉杆子或放手,操作杆子变化 想输入,直接放手,看电平高低就行 线与,一个低电平,全部低电平,可以利用这个执行多 ...

  7. vuecli-vite-vue3-init 项目架子 快速开发 webpack打包

    要vite的开发的快速 和 webpack打包 开发的时候 用vite,可以打包一个本地可以直接双击,不用起服务的代码 这个架子的缺点就是 vite和vuecli 两套双配置 正式公司项目 还是vue ...

  8. QT 自定义QGraphicsItem 缩放后旋转 图形出现漂移问题

    实现自定义QGraphicsItem缩放和旋转时,遇到了这样一个问题:将item旋转一个角度,然后拖拽放大,再次进行旋转时图像会发生漂移.原本以为是放大后中心点位置没有改变,导致旋转时以原中心的旋转出 ...

  9. struts1标签之

    <logic:iterate>主要用来处理在页面上输出集合类,集合一般来说是下列之一: 1. java对象的数组 2. ArrayList.Vector.HashMap等 具体用法请参考s ...

  10. Spring Boot学习日记13

    学习引入Thymeleaf Thymeleaf 官网:https://www.thymeleaf.org/ Thymeleaf 在Github 的主页:https://github.com/thyme ...