推送到远程仓库等步骤

发布时间:2025-06-24 17:36:23  作者:北方职教升学中心  阅读量:752


  • 注释 #:注释行以 #开头,Git 会忽略注释行。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、输出示例如下:
    origin  https://github.com/example/repo.git (fetch)origin  https://github.com/example/repo.git (push)
  • 8.2 拉取远程仓库的更新

    命令

    gitpull

    示例命令

    gitpull origin master

    效果

    • 从远程仓库的 master分支拉取最新的更改并自动合并到本地当前分支。

    10. Git 性能优化与高级技巧

    10.1 使用 Git LFS (Large File Storage)

    Git LFS 用于管理大型文件(如二进制文件、

    7.5.3 撤销整个提交

    命令

    gitreset --hard<commit_hash>

    示例命令

    gitreset --hardabcdef1234567890abcdef1234567890abcdef12

    效果

    • 重置当前分支到指定的提交 abcdef1234567890abcdef1234567890abcdef12,并且丢弃所有当前工作目录中的更改。.tmp文件以及 node_modules/dist/目录下的文件都会被 Git 忽略。

      1. Fork:在 GitHub 上 fork 仓库,创建该仓库的副本。它是用来查看文件改动的详细内容。
    发布分支

    命令

    gitflow release start <release_name>

    示例命令

    gitflow release start 1.0.0

    效果

    • 创建一个新的发布分支 1.0.0,用于准备发布版本。如果你已经执行了 git add,此命令将取消暂存,但不会丢失文件中的更改。

    解决冲突步骤

    1. 打开冲突文件,手动解决冲突。

    2. 9.2 使用 Git 钩子 (Hooks)

      Git 钩子是 Git 中的一个机制,允许在执行某些操作前或后运行自定义脚本。

    3. 例如,添加以下内容以忽略某些常见文件和文件夹:
      *.log*.tmpnode_modules/dist/
      这样,所有 .log

      命令

      gitadd.gitignoregitcommit -m"Add .gitignore to ignore unnecessary files"gitpush origin <branch_name>

      示例命令

      gitadd.gitignoregitcommit -m"Add .gitignore to ignore node_modules"gitpush origin main

      效果

      • .gitignore文件添加到暂存区,提交到版本控制中,并推送到远程仓库。

        启动 Bisect

        命令

        gitbisect start

        示例命令

        gitbisect start

        效果

        • 启动 bisect 过程,Git 会要求你指定已知的“坏”提交和“好”提交。使用 -D强制删除:
          gitbranch -Dfeature-xyz
        删除远程分支

        命令

        gitpush <remote_name>--delete<branch_name>

        示例命令

        gitpush origin --deletefeature-xyz

        效果

        • 删除远程仓库中的 feature-xyz分支。

    6.2 Git Flow 工作流

    Git Flow 是一种非常流行的 Git 工作流,适用于持续集成和团队合作的项目。

  • 合并到主分支并推送到远程仓库。常见的钩子包括 pre-commitpost-commit

    保存当前更改

    命令

    gitstash

    示例命令

    gitstash

    效果

    • 保存当前工作区的修改,并将工作区恢复为最近一次提交时的状态。

      执行 Rebase

      命令

      gitrebase <base_branch>

      示例命令

      gitrebase master

      效果

      • 将当前分支的提交重新应用到 master分支的最新提交上。
      • 配置成功后,使用 git config --list可以查看所有配置信息。操作系统生成的文件等不需要版本控制的内容。

        设置别名

        命令

        gitconfig --globalalias.<alias_name><git_command>

        示例命令

        gitconfig --globalalias.co checkout

        效果

        • git checkout命令设置别名 git co,以后可以使用 git co来代替 git checkout
        切换分支

        命令

        gitcheckout <branch_name>

        示例命令

        gitcheckout feature-login

        效果

        • 切换到 feature-login分支,开始在该分支上进行开发。
        • develop:用于开发的主分支,所有的开发和集成工作都发生在这里。
        • 完成开发后,提交更改并推送到远程仓库。
        删除分支

        命令

        gitbranch -d<branch_name>

        示例命令

        gitbranch -dfeature-xyz

        效果

        • 删除分支 feature-xyz,如果分支已经合并到当前分支,则可以成功删除。推送到远程仓库等步骤。它由 Linus Torvalds(Linux 操作系统的创建者)于 2005 年开发。别名设置等。通常会显示为 both modified,需要手动编辑冲突文件。例如,# Ignore logs。如果没有冲突,Git 会自动合并修改并创建一次新的提交。

          设置钩子

          命令

          cd.git/hooks

          示例命令

          cd.git/hooks

          效果

          • 进入 .git/hooks目录,所有的钩子脚本都存放在该目录中。

            目录

            • Git 完全指南:从入门到精通
              • 1. Git 概述
                • 1.1 什么是 Git
                • 1.2 Git 与其他版本控制系统的区别
                • 1.3 Git 的主要特点
              • 2. Git 安装与配置
                • 2.1 Git 安装
                  • Windows
                  • macOS
                  • Linux
                • 2.2 Git 配置
              • 3. Git 基础命令
                • 3.1 克隆 Git 仓库
                • 3.2 查看 Git 仓库状态
                • 3.3 查看提交历史
                • 3.4 创建、编译产物、它特别适合将第三方库或依赖项目引入到你的项目中。
                • release:当开发周期结束时,创建一个发布分支进行最终调试。

                  安装 Git LFS

                  命令

                  gitlfs install

                  示例命令

                  gitlfs install

                  效果

                  • 安装 Git LFS(Large File Storage),使其可以用于管理大型文件。Git 会通过二分查找来缩小范围,直到定位到引入 bug 的提交。管理代码变更,并保障项目的稳定性与可持续发展。
                  • 会提示输入分支名称等设置,通常选择默认设置即可。

                    命令

                    gittag <tag_name>

                    示例命令

                    gittag v1.0

                    效果

                    • 为当前提交创建一个名为 v1.0的标签。如果尚未合并,Git 会发出警告。开发者可以 fork 一个远程仓库,修改自己的分支,最后通过 Pull Request 将修改提交给原仓库的所有者进行合并。

                      7.3.1 创建 .gitignore文件

                      命令

                      echo"<pattern>">>.gitignore

                      示例命令

                      echo"node_modules/">>.gitignore

                      效果

                      • 这个命令将 node_modules/目录添加到 .gitignore文件中,表示 Git 将忽略所有 node_modules目录下的文件。
                      • 分布式版本控制系统(如 Git):每个开发者的工作站都有完整的代码历史记录,可以脱离服务器工作,直到需要同步时才连接。
                      示例钩子:pre-commit

                      命令

                      echo"#!/bin/sh">.git/hooks/pre-commitecho"echo 'Running pre-commit hook...'">>.git/hooks/pre-commitchmod+x .git/hooks/pre-commit

                      效果

                      • 创建一个 pre-commit钩子,每次提交之前,都会运行这个脚本。输出示例:
                        stash@{0}: WIP on master: 1234567Add feature Xstash@{1}: WIP on feature-xyz: abcdef0 Fix bug Y
                      恢复 Stash

                      命令

                      gitstash apply <stash_index>

                      示例命令

                      gitstash apply stash@{0}

                      效果

                      • 恢复指定的暂存更改,将其应用到当前分支。修改和删除的文件)。

                      7.3 Git 忽略文件

                      在 Git 中,.gitignore文件用于指定 Git 不需要跟踪的文件或目录。

                    • 终端输出
                      commit 1234567890abcdef1234567890abcdef12345678Author: John Doe <johndoe@example.com>Date:   Tue Oct 2818:32:01 2024+0800    Fixed the bug inindex.htmlcommit 0987654321abcdef0987654321abcdef09876543Author: Jane Smith <janesmith@example.com>Date:   Mon Oct 2712:15:45 2024+0800    Added new feature to main.js

                    3.4 创建、

                  命令

                  gitrebase <branch_name>

                  示例命令

                  gitrebase master

                  效果

                  • 将当前分支的更改应用到 master分支的顶部,从而产生一个线性的提交历史。
                  • 支持分支和合并:Git 提供强大的分支管理和合并功能,便于团队协作。Git 会显示每次提交的哈希值、如果没有冲突,Git 会自动合并并创建一个新的提交。
                  7.3.3 忽略已跟踪的文件

                  如果某个文件已经被 Git 跟踪,但之后你希望忽略它,可以通过修改 .gitignore文件来实现。

                • 终端输出
                  remote: Enumerating objects: 20, done.remote: Counting objects: 100% (20/20), done.remote: Compressing objects: 100% (14/14), done.From https://github.com/example/repo * branch            master     ->FETCH_HEAD Updating abcdef1..1234567Fast-forward  file1 |2+-  1filechanged, 1insertion(+), 1deletion(-)

                8.3 推送本地更改到远程仓库

                命令

                gitpush <remote_name><branch_name>

                示例命令

                gitpush origin master

                效果

                • 将本地 master分支的提交推送到远程仓库。

                • 否定符 !:在忽略规则中,使用 !来指定不忽略某个文件或目录。

                7.4 查看提交历史

                命令

                gitlog

                示例命令

                gitlog

                效果

                • 显示当前分支的提交历史,包括每个提交的哈希值、

                2. Git 安装与配置

                2.1 Git 安装

                Git 支持多种操作系统,包括 Windows、

              • 7. Git 高级命令与技巧

                7.1 Rebase 与 Merge

                git mergegit rebase都用于合并分支,但它们的工作方式不同。提交日期和提交信息。

              查看 Stash 列表

              命令

              gitstash list

              示例命令

              gitstash list

              效果

              • 显示所有的暂存更改(stash)列表。
              • !important.log保留 important.log文件,即使它符合 .log模式。macOS 和 Linux。例如,*.log会忽略所有 .log文件。
              • 分布式架构:每个开发者的机器上都有完整的代码库副本,不依赖于中央服务器。
              • 功能分支:通常用于开发新功能。提交时间和提交信息。

                • Merge:合并分支时,会产生一个合并提交,保留合并历史。
                • 执行 git status会看到该文件或目录从暂存区移除的提示:
                  $ gitstatusChanges to be committed:  (use "git restore --staged <file>..."to unstage)deleted:    node_modules/

                注意事项

                • 使用 --cached参数仅会从 Git 的索引中删除文件,文件本身会保留在本地工作区。

                10.2 Git 分支管理高级技巧

                删除本地分支

                命令

                gitbranch -d<branch_name>

                示例命令

                gitbranch -dfeature-xyz

                效果

                • 删除本地分支 feature-xyz,如果该分支未完全合并到当前分支,Git 会阻止删除。

                  4. Git 提交与变更管理

                  4.1 提交文件变更

                  命令

                  gitcommit -m"<commit_message>"

                  示例命令

                  gitcommit -m"Fix bug in header component"

                  效果

                  • 将已暂存的更改提交到本地 Git 仓库,并附带一条提交信息。
                  • Linux
                    1. 在 Debian/Ubuntu 系统上,可以使用以下命令安装:
                      sudoaptupdatesudoaptinstallgit
                    2. 在 Red Hat/Fedora 系统上:
                      sudoyum installgit

                    2.2 Git 配置

                    Git 安装完成后,第一次使用时需要进行一些基本配置,主要包括设置用户名和邮箱。

                  • 修改与提交:在本地修改代码并提交。
                  标记提交为好或坏

                  命令

                  gitbisect good <commit_hash>gitbisect bad <commit_hash>

                  示例命令

                  gitbisect good abcdef1234567890gitbisect bad 1234567890abcdef

                  效果

                  • 标记提交为好(不包含 bug)或坏(包含 bug)。
                  解决冲突

                  命令

                  gitstatus

                  示例命令

                  gitstatus

                  效果

                  • 查看当前分支的状态,Git 会提示哪些文件存在冲突。
                  • 目录模式 /*:匹配目录中的所有文件。合并时,如果两个分支修改了相同的部分,Git 会提示冲突,并要求开发者手动解决。
                  创建新特性分支

                  命令

                  gitflow feature start <feature_name>

                  示例命令

                  gitflow feature start feature-xyz

                  效果

                  • 使用 Git Flow 创建一个新的特性分支 feature-xyz,用于开发新功能。
                  • 在本地创建新的分支进行开发。
                  解决冲突

                  如果合并时发生冲突,Git 会标记出冲突文件,开发者需要手动编辑冲突部分,解决后再执行提交。

                  命令

                  gitconfig --globaluser.name "<username>"gitconfig --globaluser.email "<email>"

                  示例命令

                  gitconfig --globaluser.name "John Doe"gitconfig --globaluser.email "johndoe@example.com"

                  效果

                  • 这些配置将用于你所有的 Git 提交,确保每次提交时正确记录提交者信息。

                  10.3 Git 合并与冲突解决

                  合并分支

                  命令

                  gitmerge <branch_name>

                  示例命令

                  gitmerge feature-xyz

                  效果

                  • feature-xyz分支的修改合并到当前分支。

                    安装 Git Flow

                    命令

                    gitflow init

                    示例命令

                    gitflow init

                    效果

                    • 启动 Git Flow 工作流程初始化,设置默认的分支策略。

                    11.2 Git Flow 工作流程

                    Git Flow 是一种常见的 Git 工作流程,它定义了多个分支类型和对应的管理策略,旨在简化团队协作。

                  • 运行命令后,执行 cat .gitignore可以看到文件内容:
                    $ cat.gitignorenode_modules/

                  注意事项

                  • .gitignore是一个文本文件,你可以手动编辑该文件来添加其他需要忽略的文件或目录模式。视频文件等),它将这些大文件存储在 Git 外部的专用服务中,从而避免仓库变得过于庞大。需要先将该文件从 Git 的索引中移除,然后才能正确忽略。
                  删除分支

                  命令

                  gitbranch -d<branch_name>

                  示例命令

                  gitbranch -dfeature-login

                  效果

                  • 删除 feature-login分支。再次感谢大家的关注和支持!点我关注❤️
  • 以下是常见的忽略规则:

    • 通配符 *:匹配零个或多个字符。

    提示

    • 使用 nano命令时,编辑完文件后需要按 Ctrl + O保存文件,按 Ctrl + X退出编辑器。它通常用于忽略临时文件、
    • 安装完成后,在命令行输入 git --version,如果显示 Git 的版本号,表示安装成功。
    • hotfix:用于修复生产环境的紧急问题。通过本篇文章,你已经学会了 Git 的核心命令及其使用方法,希望你能够灵活运用 Git 在实际项目中进行版本管理。

    5. Git 分支管理

    5.1 分支的概念

    分支是 Git 中一个非常强大的功能,它允许你在不影响主分支(通常是 mastermain)的情况下进行开发。你可以在文件中添加或删除需要忽略的文件或目录模式。

  • 终端输出
    On branch masterYour branch is up to datewith 'origin/master'.Changes not staged forcommit:  modified:   index.htmlno changes added to commit (use "git add"and/or "git commit -a")
  • 3.3 查看提交历史

    命令

    gitlog

    示例命令

    gitlog

    效果

    • 查看当前 Git 仓库的提交历史。

      1. 查看冲突文件:

        gitstatus
      2. 编辑冲突文件,删除冲突标记,修改内容。

        暂存所有更改

        命令

        gitadd.

        示例命令

        gitadd.

        效果

        • 暂存当前目录下的所有更改(包括新增、请谨慎使用,因为此命令会删除所有未提交的更改。如果该分支已经合并到当前分支,删除将成功。提交等操作,直到准备好与远程仓库同步。

        注意事项

        • .gitignore中添加规则时,一定要注意规则的顺序,因为后面的规则会覆盖前面的规则。
        7.3.5 常见的 .gitignore配置

        以下是一些常见的 .gitignore配置,适用于不同的开发环境和工具。

    12. Git 进阶技巧

    12.1 使用 Stash 临时保存更改

    Git 提供了 stash命令,用于将当前的更改暂时保存,之后可以恢复,以便切换到其他任务。作者信息、

  • Pull Request:在 GitHub 上发起 Pull Request,将修改提交给原项目。

  • 终端输出

    Counting objects: 3, done.Delta compression using up to 4threads.Compressing objects: 100% (3/3), done.Writing objects: 100% (3/3), 329bytes |329.00KiB/s, done.To https://github.com/example/repo.git 1234567..89abcdef  master ->master
  • 8.4 克隆远程仓库

    命令

    gitclone <repository_url>

    示例命令

    gitclone https://github.com/example/repo.git

    效果

    • 克隆远程仓库到本地,创建一个新的 Git 仓库,并自动设置远程 origin指向该仓库。
    • 终端输出
      diff --git a/index.html b/index.htmlindex abcdef1..1234567 100644--- a/index.html+++ b/index.html@@ -1,3 +1,3 @@ <header>-   <h1>Welcome to My Website</h1>+   <h1>Welcome to Our Website</h1> </header>

    4.3 使用暂存区

    Git 使用暂存区来暂存更改,等待提交。

  • 运行安装程序,按照向导完成安装,选择默认选项即可。输出格式如下:

    commit 1234567890abcdef1234567890abcdef12345678 (HEAD ->master)Author: John Doe <johndoe@example.com>Date:   Thu Oct 2812:15:42 2024+0000    Fix bug inheader componentcommit abcdef1234567890abcdef1234567890abcdef12Author: Jane Smith <janesmith@example.com>Date:   Wed Oct 2715:22:08 2024+0000    Add new feature to handle user login
  • 额外选项

    • git log --oneline:简洁模式,只显示提交的哈希值和提交信息。

    • 暂存解决冲突的文件:

      gitadd<conflicted_file>
    • 完成合并并提交:

      gitcommit
    • 6. Git 工作流

      6.1 基本工作流

      Git 的基本工作流包括以下步骤:

      1. 从远程仓库克隆项目。

        1. Node.js 项目 .gitignore
        # 忽略 node_modules 目录node_modules/# 忽略编译的日志文件npm-debug.log*# 忽略临时文件*.tmp*.swp
        2. Python 项目 .gitignore
        # 忽略虚拟环境目录venv/# 忽略 Python 编译的文件*.pyc*.pyo
        3. Java 项目 .gitignore
        # 忽略 Maven 构建输出目录target/# 忽略 IntelliJ IDEA 配置文件.idea/# 忽略 Eclipse 配置文件.project.classpath
        7.3.6 提交 .gitignore文件

        一旦你修改了 .gitignore文件并确保它包含了所有需要忽略的文件和目录,记得将它提交到 Git 仓库,以便其他开发者也能够使用相同的忽略规则。

      2. Clone:将 fork 的仓库克隆到本地。

    13. 寄语

    Git 是一种强大的版本控制工具,掌握了其基本命令和高级特性后,可以大大提高开发效率并方便团队协作。

  • 输出示例:
    Tracking "*.psd"to Git LFS.
  • 提交 LFS 文件

    命令

    gitadd<file_name>gitcommit -m"Add large file"

    示例命令

    gitaddimage.psdgitcommit -m"Add large PSD file"

    效果

    • 将大文件(如 image.psd)添加到 Git LFS 管理的文件中,然后提交。每个分支都是代码的一个独立版本,开发者可以在不同分支上并行开发,最后再将它们合并。
    • 脚本内容会输出 "Running pre-commit hook...",并且该钩子需要执行权限。

    命令

    echo"*.log">>.gitignoreecho"!important.log">>.gitignore

    效果

    • *.log忽略所有 .log文件。

    1.3 Git 的主要特点

    • 速度快:Git 的本地操作速度非常快,因为大多数操作是在本地完成的。创建新分支、本篇文章从基础命令讲起,逐步深入,帮助你全面了解并掌握 Git,最终达到精通。
    完成特性分支

    命令

    gitflow feature finish <feature_name>

    示例命令

    gitflow feature finish feature-xyz

    效果

    • 完成 feature-xyz分支的开发,并将其合并回 develop分支。
    暂存单个文件

    命令

    gitadd<file_name>

    示例命令

    gitaddindex.html

    效果

    • index.html文件的更改添加到暂存区,准备提交。Git 会在冲突部分标记出不同的修改,类似如下:

      <<<<<<<HEAD// Your changes here=======// Changes from the other branch>>>>>>>feature-xyz
    • 在解决冲突后,标记为已解决:

      gitadd<file_name>
    • 完成合并并提交:

      gitcommit
    • 11. Git 工作流程

      11.1 基本工作流程

      命令

      gitclone <repository_url>gitcheckout -b<new_branch>gitadd<file_name>gitcommit -m"Your commit message"gitpush origin <new_branch>

      示例命令

      gitclone https://github.com/example/repo.gitgitcheckout -bfeature-xyzgitaddindex.htmlgitcommit -m"Add new feature to index"gitpush origin feature-xyz

      效果

      • 这是一个基本的 Git 工作流程,包括从远程仓库克隆、你可以使用 git add将修改的文件添加到暂存区,然后使用 git commit提交更改。
      • 在移除文件后,记得提交 .gitignore文件和 git rm操作:
        gitcommit -m"Remove node_modules from version control"
      7.3.4 适用的忽略规则

      .gitignore文件中,可以使用不同的模式来指定忽略哪些文件或目录。合理使用 .gitignore能有效保持 Git 仓库的整洁,避免不必要的文件进入版本控制系统。

    • Rebase:将一个分支的修改应用到另一个分支的最顶端,从而产生一个线性的提交历史。

    7.2 使用 Tag

    Git 使用标签(Tag)来标记特定的提交点,通常用于标记发布版本。你可以手动编辑 .gitignore文件,添加新的忽略规则。

    3. Git 基础命令

    3.1 克隆 Git 仓库

    命令

    gitclone <repository_url>

    示例命令

    gitclone https://github.com/example/repo.git

    效果

    • 克隆远程仓库到本地。每个功能分支在完成开发后合并回主分支。
    • 终端输出
      Cloning into 'repo'...remote: Counting objects: 50, done.remote: Compressing objects: 100% (25/25), done.remote: Total 50(delta 15), reused 20(delta 5), pack-reused 0Unpacking objects: 100% (50/50), done.

    3.2 查看 Git 仓库状态

    命令

    gitstatus

    示例命令

    gitstatus

    效果

    • 显示当前工作目录的状态,列出哪些文件有变更,哪些文件已经暂存,哪些文件没有被跟踪。确保本地分支与远程分支一致后,执行推送操作。
    删除 Stash

    命令

    gitstash drop <stash_index>

    示例命令

    gitstash drop stash@{0}

    效果

    • 删除指定的暂存更改。例如,如果先添加 *.log忽略所有 .log文件,再添加 !important.log来保留 important.log

      添加子模块

      命令

      gitsubmodule add<repository_url><path>

      示例命令

      gitsubmodule addhttps://github.com/example/other-repo.git submodules/other-repo

      效果

      • 将一个外部仓库添加为子模块,并将其内容放置在指定路径(如 submodules/other-repo)下。

      6.3 Fork 与 Pull Request 工作流

      在开源项目中,通常使用 Fork 和 Pull Request(PR)工作流。每次操作都需要连接到服务器。

    12.3 使用 Bisect 查找提交中的 bug

    Git Bisect 是一个二分查找工具,用于定位某个 bug 引入的提交。以下是不同操作系统的安装方法:

    Windows
    1. 前往 Git 官方网站 下载 Windows 版 Git。
    2. feature:每个新功能都应该在独立的分支上开发。
    3. 9.3 Git 配置与别名

      Git 允许你为常用命令设置别名,帮助提高工作效率。

    4. 如果 .gitignore文件不存在,它会自动创建并将指定的内容追加到文件末尾。

      LuckiBit
      在这里插入图片描述

      Git 完全指南:从入门到精通

      Git 是现代软件开发中最重要的版本控制工具之一,它帮助开发者高效地管理项目,支持分布式协作和版本控制。Git 允许开发者在本地创建代码仓库,进行文件修改、

    5. 5.3 合并分支与解决冲突

      当开发者在不同分支上进行开发并且最终需要将这些更改合并时,Git 提供了合并操作。

    6. 终端输出
      Updating abcdef1..1234567Fast-forward file1 |2+- 1filechanged, 1insertion(+), 1deletion(-)
    7. 如果合并过程中出现冲突,Git 会标记出冲突文件,需要手动解决冲突后再提交。

      7.5.2 撤销暂存的更改

      命令

      gitreset <file_name>

      示例命令

      gitreset index.html

      效果

      • 将已暂存的 index.html文件从暂存区移除,但不影响文件内容。然后,使用 git commit提交这些更改。

        合并分支

        命令

        gitmerge <branch_name>

        示例命令

        gitmerge feature-login

        效果

        • feature-login分支的更改合并到当前分支。

          命令

          gitrm--cached<file_name>

          示例命令

          gitrm--cachednode_modules/

          效果

          • 这个命令将 node_modules/目录从 Git 的索引中移除,但不会删除本地文件。此命令会创建一个与远程仓库同名的文件夹,并将所有文件和历史记录下载到本地。
          • 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。切换和删除分支
            • 创建分支
            • 切换分支
            • 删除分支
          • 3.5 合并分支
        • 4. Git 提交与变更管理
          • 4.1 提交文件变更
          • 4.2 查看差异
          • 4.3 使用暂存区
            • 暂存所有更改
            • 暂存单个文件
        • 5. Git 分支管理
          • 5.1 分支的概念
          • 5.2 创建、如果没有冲突,Git 会自动合并。切换和删除分支
            创建分支

            命令

            gitbranch <branch_name>

            示例命令

            gitbranch feature-login

            效果

            • 创建一个名为 feature-login的新分支,但不切换到该分支。切换和删除分支
              创建分支

              命令

              gitbranch <branch_name>

              示例命令

              gitbranch feature-xyz

              效果

              • 创建一个新的分支 feature-xyz,但并不切换到该分支。
              7.3.2 编辑 .gitignore文件

              在项目开发中,可能会有多个文件需要被忽略,或者更改忽略规则。例如,build/*会忽略 build/目录下的所有文件。

            5.2 创建、

          • 在移除索引后,node_modules/目录将被 .gitignore忽略,不再被 Git 跟踪。

            1.2 Git 与其他版本控制系统的区别

            • 集中式版本控制系统(如 SVN):所有的代码版本保存在一个中央服务器中。提交更改、
            • 终端输出
              [master 1234567]Fix bug inheader component 1filechanged, 2insertions(+), 1deletion(-)

            4.2 查看差异

            命令

            gitdiff

            示例命令

            gitdiff

            效果

            • 显示工作目录与暂存区之间的差异,或者暂存区与最后一次提交之间的差异。

          7.5 撤销修改

          Git 提供了多种方式撤销更改,视不同的场景而定。Git Flow 使用几个固定的分支来管理开发周期:

          • master:用于发布的分支,生产环境代码总是保持稳定。
          • git log --graph:以图形化方式显示提交历史。
          更新子模块

          命令

          gitsubmodule update --remote

          示例命令

          gitsubmodule update --remote

          效果

          • 更新所有子模块到最新的远程版本。
          查看配置

          命令

          gitconfig --list

          示例命令

          gitconfig --list

          效果

          • 显示所有 Git 配置项,例如用户信息、切换和删除分支
            • 创建分支
            • 切换分支
            • 删除分支
          • 5.3 合并分支与解决冲突
            • 合并分支
            • 解决冲突
        • 6. Git 工作流
          • 6.1 基本工作流
          • 6.2 Git Flow 工作流
          • 6.3 Fork 与 Pull Request 工作流
        • 7. Git 高级命令与技巧
          • 7.1 Rebase 与 Merge
          • 7.2 使用 Tag
          • 7.3 Git 忽略文件
            • 7.3.1 创建 `.gitignore` 文件
            • 7.3.2 编辑 `.gitignore` 文件
            • 7.3.3 忽略已跟踪的文件
            • 7.3.4 适用的忽略规则
            • 7.3.5 常见的 `.gitignore` 配置
              • 1. Node.js 项目 `.gitignore`
              • 2. Python 项目 `.gitignore`
              • 3. Java 项目 `.gitignore`
            • 7.3.6 提交 `.gitignore` 文件
          • 7.4 查看提交历史
          • 7.5 撤销修改
            • 7.5.1 撤销未暂存的更改
            • 7.5.2 撤销暂存的更改
            • 7.5.3 撤销整个提交
        • 8. Git 与远程仓库
          • 8.1 查看远程仓库
          • 8.2 拉取远程仓库的更新
          • 8.3 推送本地更改到远程仓库
          • 8.4 克隆远程仓库
        • 9. Git 高级特性
          • 9.1 子模块 (Submodule)
            • 添加子模块
            • 更新子模块
          • 9.2 使用 Git 钩子 (Hooks)
            • 设置钩子
            • 示例钩子:`pre-commit`
          • 9.3 Git 配置与别名
            • 设置别名
            • 查看配置
        • 10. Git 性能优化与高级技巧
          • 10.1 使用 Git LFS (Large File Storage)
            • 安装 Git LFS
            • 跟踪大型文件类型
            • 提交 LFS 文件
          • 10.2 Git 分支管理高级技巧
            • 删除本地分支
            • 删除远程分支
          • 10.3 Git 合并与冲突解决
            • 合并分支
            • 解决冲突
        • 11. Git 工作流程
          • 11.1 基本工作流程
          • 11.2 Git Flow 工作流程
            • 安装 Git Flow
            • 创建新特性分支
            • 完成特性分支
            • 发布分支
        • 12. Git 进阶技巧
          • 12.1 使用 Stash 临时保存更改
            • 保存当前更改
            • 查看 Stash 列表
            • 恢复 Stash
            • 删除 Stash
          • 12.2 使用 rebase 重新应用提交
            • 执行 Rebase
          • 12.3 使用 Bisect 查找提交中的 bug
            • 启动 Bisect
            • 标记提交为好或坏
        • 13. 寄语
        • 14. 结束语

    1. Git 概述

    1.1 什么是 Git

    Git 是一个分布式版本控制系统,用于跟踪文件的变化,尤其是程序代码的变化。如果没有冲突,Git 会自动完成合并,并创建一个新的提交。

  • 发布分支:用于准备代码发布,确保代码在生产环境中运行良好。
  • 终端输出
    Git LFS initialized.
  • 跟踪大型文件类型

    命令

    gitlfs track "*.psd"

    示例命令

    gitlfs track "*.psd"

    效果

    • 开始跟踪所有 .psd文件类型的文件,将它们存储在 Git LFS 中。例如,!important.log会保留 important.log文件。
    切换分支

    命令

    gitcheckout <branch_name>

    示例命令

    gitcheckout feature-xyz

    效果

    • 切换到指定的分支 feature-xyz

    8. Git 与远程仓库

    8.1 查看远程仓库

    命令

    gitremote -v

    示例命令

    gitremote -v

    效果

    • 显示当前项目的远程仓库信息,包括远程仓库的名称(通常为 origin)和 URL 地址。

      7.5.1 撤销未暂存的更改

      命令

      gitcheckout -- <file_name>

      示例命令

      gitcheckout -- index.html

      效果

      • 撤销文件 index.html中的未暂存更改,恢复到上次提交时的状态。Git 提供强大的分支管理功能,可以在不干扰主分支的情况下开发新功能或修复 bug。

        14. 结束语

        1. 本节内容已经全部介绍完毕,希望通过这篇文章,大家对 Git有了更深入的理解和认识。
        2. 终端输出
          Cloning into 'repo'...remote: Enumerating objects: 123, done.remote: Counting objects: 100% (123/123), done.remote: Compressing objects: 100% (90/90), done.remote: Total 123(delta 10), reused 90(delta 6), pack-reused 0Receiving objects: 100% (123/123), 3.64MiB |2.50MiB/s, done.Resolving deltas: 100% (10/10), done.

      9. Git 高级特性

      9.1 子模块 (Submodule)

      Git 子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。

    • 数据完整性:Git 使用 SHA-1 哈希值确保版本数据的完整性,防止数据丢失。如果没有合并,Git 会提示你需要使用 -D强制删除。

    12.2 使用 rebase 重新应用提交

    rebase用于将一组提交应用到另一个分支上,常用于整理提交历史。修改文件、

    3.5 合并分支

    命令

    gitmerge <branch_name>

    示例命令

    gitmerge feature-xyz

    效果

    • feature-xyz分支的更改合并到当前分支。
    • 使用 >>操作符会将内容追加到 .gitignore文件,如果该文件已经存在,内容将不会被覆盖。
    • macOS
      1. 可以使用 Homebrew 安装 Git,打开终端并输入:
        brew installgit
      2. 安装完成后,在命令行输入 git --version,如果显示 Git 的版本号,表示安装成功。

        • 主分支:通常是主开发线的分支,生产环境代码通常部署在主分支上。提交作者、

          命令

          nano.gitignore

          示例命令

          nano.gitignore

          效果

          • 这会打开 .gitignore文件,允许你进行手动编辑。
          • 其他开发者拉取代码时,.gitignore文件将自动应用到他们的本地仓库,确保不再跟踪忽略的文件。