我总结了关于Git的内容

Git的好处

1. 分布式版本控制系统
Git是一种分布式版本控制系统,因此可以轻松进行多人协作和远程开发。此外,通过在本地拥有存储库,即使在没有互联网连接的环境下,也可以进行开发。

2. 履历管理方便
Git能够记录文件的变更履历,因此履历管理方便。同时,还可以反向操作变更履历。通过这一功能,在进行代码修复或功能添加等操作时,可以安全进行工作。

Git是一种通过使用分支功能来管理多个版本的工具。通过这种方式,可以在多人协作开发或同时开发多个功能时,避免混乱并顺利进行工作。

4. 与远程存储库的协作方便
Git使得与远程存储库的协作变得简单。你可以将代码上传到远程存储库,也可以获取其他开发者的代码。

Git是一款开源软件,任何人都可以自由使用。同时,它也得到了众多开发者的参与,不断有bug修复和新功能添加等持续进行。

目录

初始化git
配置git
Git的暂存区
提交git
git状态
.git忽略
起点
添加远程起点
推送git
拉取git
克隆git
git分支
git合并
git变基
git切换
强制重置git
软重置git
互动变基

初始化一个git仓库

git init 是一个用于创建Git仓库的命令。Git仓库会被放置在Git来管理的项目的根目录中。当执行git init命令时,Git会将当前目录初始化为一个仓库,并创建必要的默认文件。通过执行该命令,完成了用于管理Git历史记录的初始设置。通过执行git init命令,可以创建一个新的Git仓库,并开始使用Git进行版本控制。

git init

git配置

git config是用于管理Git设置的命令。您可以设置与Git操作相关的设置,例如设置Git用户名和电子邮件地址,设置默认编辑器等。您还可以配置远程仓库的URL以及有关分支合并方式的设置。

git config命令可以进行全局设置和本地设置。全局设置是应用于整个系统的设置,可以使用–global选项进行设置。而本地设置是仅适用于特定存储库的设置,可以使用–local选项进行设置。

在使用存储库之前,您需要设置提交用户名和电子邮件地址。以下是一个设置步骤的示例。

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

通过这样的方式,新的Git存储库被初始化并准备好进行提交。

Git的暂存区

Git的暂存区(也称为stage或index)是Git中用于版本控制文件的中间区域。在Git中,我们把文件的修改添加到暂存区,然后选择要包含在提交中的修改。

通过使用「暂存区域」,Git可以实现以下流程。

1. 修改文件。
2. 使用git add命令将修改添加到暂存区。
3. 使用git commit命令将暂存区的修改提交。
通过使用暂存区,可以一次包含多个文件的修改提交。此外,可以将文件的修改内容细分为不同的提交,以便于查看历史记录。

将文件添加到暂存区后,文件的快照将保存在存储库的.git/index文件中。

创建一个名为example.txt的新文件,并使用git add命令将文件添加到暂存区。然后,使用git commit命令提交更改,并添加提交信息”Initial commit”。

创建新文件

$ touch example.txt

2. 初始化Git存储库

$ git init
Initialized empty Git repository in /path/to/repo/.git/

3. 文件暂存

$ git add example.txt

4. 创建提交

$ git commit -m "Initial commit"
[master (root-commit) 08248c5] Initial commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 example.txt

提交git

git commit 命令是用于将更改提交到Git仓库的命令。通过使用git commit命令,您可以将已添加到暂存区的更改永久保存到Git仓库的历史记录中。

执行git commit命令后,将会打开提交消息的编辑器。您可以在该编辑器中提供关于要包含在提交中的更改的详细信息。请尽量详细地描述变更内容、目标和修复的问题等。这样可以使未来的开发者更容易理解代码。

通过使用git commit命令的选项,你可以直接指定提交信息。例如,通过使用-m选项,像git commit -m “Initial commit”这样,你可以直接指定提交信息。

使用git commit命令创建提交后,将生成提交ID(SHA-1哈希),并永久保存在Git仓库中。提交ID将用于将来识别该次提交。同时,可以使用git log命令浏览仓库的历史提交记录。

查看git状态。

git status 是一个用于在Git版本控制系统中显示当前工作目录状态的命令。当在Git仓库中进行工作时,可以查看哪些文件已被修改,哪些文件已被暂存,以及当前所在的分支等信息。此外,它还能列出当前工作目录中的变更点,包括冲突、文件删除和添加等。

git状态命令的输出
当前分支名称
已添加到暂存区的文件
在Git管理下但未添加到暂存区的文件(如果有更改,还会显示更改内容)
如果有未提交的更改,将显示这些更改的摘要。

在执行git status命令时显示的示例

On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   file1.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	new_file.txt

no changes added to commit (use "git add" and/or "git commit -a")

目前显示当前分支为main。还显示了file1.txt已被修改,还存在未提交的更改。同时,也显示了new_file.txt是未跟踪的文件。最后一行展示了如何提交更改。

.gitignore 的中文翻译为:忽略.git文件

.gitignore 是一个用于指定Git应忽略的文件的文件。在Git存储库中,除了代码外,可能还包含许多其他文件。例如,可执行文件、日志文件、临时文件和备份文件等。通过使用.gitignore文件来指定这些文件,使Git不会跟踪它们。

.gitignore文件会放置在仓库的根目录下。文件格式中,每行描述一个模式。这些模式包括不需要追踪的文件名、文件夹名、扩展名等信息。例如,可以进行如下描述。

# コメントは # で始める
*.log       # .log ファイルを無視する
/tmp        # tmp ディレクトリを無視する

此外,您还可以使用通配符和正则表达式来指定复杂的模式。与.gitignore文件中所述的模式匹配的文件和目录将被Git忽略,并从提交中排除。

通过使用.gitignore文件,可以减小Git仓库的大小,并避免跟踪不相关的文件。此外,在共同协作时,开发者可以共享要忽略的文件和目录。

起源

origin 是远程存储库的默认名称。在执行 git push 或 git pull 等与远程存储库的交互操作时,通常会使用 origin 作为名称。

在添加远程仓库时,可以使用git remote add命令添加远程仓库的URL。在此过程中,可以指定远程仓库的名称。通常情况下,第一个添加的远程仓库的名称会默认为origin。

你也可以更改远程仓库的名称,但是由于 origin 一般被用作默认名称,所以如果需要更改,需要谨慎操作。

添加远程 origin

git remote add 命令是用于向存储库添加远程存储库的命令。通过使用git remote add命令,可以为当前存储库注册远程存储库的引用名称和URL。

在git中添加远程库使用`git remote add`命令,需指定一个名称用于引用远程库。通常这个名称被称为origin,但也可以使用其他任意名称。接下来,需要指定远程库的URL。例如,要添加GitHub上的库,可以执行如下命令。origin是远程库的引用名称,URL是GitHub上库的URL。执行该命令后,远程库将以引用名称origin和指定的URL注册。

git remote add origin https://github.com/<ユーザー名>/<リポジトリ名>.git

如果要将在GitHub上创建的远程存储库添加到本地的Git存储库中,可以使用以下步骤来将远程存储库添加为“origin”的名称。

git remote add origin https://github.com/username/repo.git

通过这个操作,一个名为”origin”的远程仓库将会被添加,它将与”https://github.com/username/repo.git”这个URL相关联。以后,可以使用”origin”作为参数进行推送、拉取等操作来操作这个远程仓库。

使用git remote add命令可以将多个远程仓库添加到仓库中。另外,可以使用git remote -v命令查看已注册在仓库中的远程仓库列表。

git remote -v的一个示例

git remote -v

执行此命令后,将显示当前Git存储库中设置的远程存储库列表。

输出例子

origin  https://github.com/username/repo.git (fetch)
origin  https://github.com/username/repo.git (push)

在这个示例中,我们可以看到一个名为”origin”的远程存储库已经被设置为”https://github.com/username/repo.git”的URL。同时,我们还可以看到”fetch”和”push”这两个关键词,它们表示用于获取和发送远程存储库的协议。

提交到git

git push命令是用于将本地提交同步到远程仓库的命令。换句话说,您可以使用该命令将在本地所做的更改上传到远程仓库。要执行git push命令,请输入以下命令。

git push origin main:main

通过执行此命令,本地主分支的更改内容将同步到远程主分支。

git push命令可以将更改内容上传到远程仓库,以便与其他开发者共享更改内容。此外,如果多个开发者向同一远程仓库推送更改,可能会出现冲突,因此需要执行合并或拉取请求等步骤。

进行代码拉取

git pull 命令是用来从远程仓库获取最新提交并将其同步到本地仓库的命令。换言之,它可以将远程仓库中存在的最新更改合并到本地仓库中。

要执行git pull命令,请按照以下方式输入命令。

git pull <リモート名> <リモートブランチ>

在这里,<远程名称> 指定了远程仓库的名称。通常,远程仓库的名称被称为 origin。 <远程分支> 指定了要获取的远程分支的名称。

举个例子,如果要从远程的主分支获取最新的更改,可以输入以下命令。

git pull origin main

通过执行此命令,将最新的远程仓库主分支的更改内容同步到本地仓库。

git pull 表示执行 git fetch 命令和 git merge 命令。git fetch 命令从远程仓库获取最新信息,并同步到本地仓库。然后,git merge 命令将本地分支和远程分支的更改内容合并。换句话说,git pull 命令可以从远程仓库获取最新更改内容并自动合并。

克隆存储库

git clone 命令是用于将远程仓库克隆到本地机器的命令。换句话说,它允许将远程仓库的所有文件和历史记录复制到本地机器上。

要执行git clone命令,需要输入以下命令。

git clone <リモートリポジトリURL>

在这里,<远程仓库URL> 指定了要复制的远程仓库的URL。

举个例子,如果要克隆GitHub上的存储库,可以按照以下方式输入命令。

git clone https://github.com/<ユーザー名>/<リポジトリ名>.git

执行此命令将把远程仓库的所有文件和历史复制到本地机器。并且本地机器将以”origin”的名称注册远程仓库。

通过使用 git clone 命令,您可以在本地机器上操作其他开发人员创建的存储库。另外,如果有多个开发人员需要访问同一个存储库,则可以使用 git clone 命令,让所有开发人员都能操作相同的远程存储库。

Git 分支

git branch命令是用于创建、显示和删除分支的命令。在Git中,可以使用多个分支同时进行不同的开发任务和版本的开发。

要执行git branch命令,请按照以下方式输入命令。

git branch <ブランチ名>

在这里,<分支名称>指定了新分支的名称。创建了新分支后,需要切换到该分支。

通过使用git branch命令,我们可以在不同的分支上进行不同版本的开发,并独立地推进开发工作。此外,根据开发任务的需求,例如实现新功能或修复错误,我们可以创建新的分支。

git branch命令的示例

git branch

执行此命令可以显示当前分支的列表。
输出示例。

  main
* feature-branch
  bugfix-branch

在这个例子中,我们可以看到有三个本地分支,分别是”main”、”feature-branch”和”bugfix-branch”。此外,在”feature-branch”之前有一个”*”,表示它是当前活动的分支(当前分支)。通过运行”git branch -a”命令,我们可以显示包括远程分支在内的所有分支。

合并git

git 合并(merge)命令是用于将两个不同的分支合并的命令。当需要切换到另一个版本进行开发,或者多个分支需要合并时(比如团队成员分别进行工作),可以使用该命令。

要使用git merge命令,首先要切换到目标合并的分支,然后输入以下命令。

git merge <統合元のブランチ>

在这里,<统合元的分支> 指定了作为统合元的分支的名称。执行这个命令后,统合元分支的更改将被反映到统合目标分支中。

此外,您可以使用 –no-ff 选项来保留分支的历史记录。如果不指定此选项,则会进行快速合并,并且历史记录将不保留。

使用git merge命令,可以将不同分支的更改内容合并在一起。然而,在多人同时进行工作的情况下,可能会发生冲突,因此在进行合并操作时需要注意。

Git rebase (变基)

git rebase(变基)命令用于重新构建两个分支的历史记录。与git merge(合并)命令类似,它可以将不同的分支合并在一起,但是git rebase命令可以将源分支的更改移动到目标分支的开头。

具体而言,可以按照以下步骤使用 git rebase 命令。

使用git checkout命令可以切换到要合并的分支。

git checkout feature/my-feature-branch

使用git rebase命令可以将更改移动到集成源分支上。

git rebase 「main<統合元のブランチ>」

如果存在竞争,将解决竞争问题。

将冲突已解决的文件加入到暂存区。

继续执行git rebase操作。

删除源分支。

使用git rebase命令可以整理分支的历史记录。但是,如果集成源分支有大量的提交,可能会花费较长的时间进行变基,因此需要注意。此外,由于可能发生冲突,因此需要在集成过程中注意。

切换到 Git 分支

git checkout命令用于切换分支、恢复提交、恢复文件等,用于切换代码仓库状态的命令。

如果要切换到另一个分支,请使用git checkout命令。输入以下命令:

git checkout <ブランチ名>

在这里,<分支名> 是指定您想要移动的分支的名称。另外,如果要恢复提交,则需要指定提交的哈希值。

此外,您还可以使用git checkout命令来恢复特定的文件或目录。请按照以下命令输入:

git checkout <ファイル名>

在这里,<文件名>是指定要恢复的文件的名称。另外,如果要恢复目录,则需要使用-f选项,强制恢复目录。

通过使用git checkout命令,您可以轻松切换分支、恢复提交以及恢复文件等,以便快速切换存储库的状态。但请注意,由于此命令会更改存储库的状态,因此使用时需要谨慎。

以中文自然地重述如下:在Git中,执行命令”git reset –hard”。

git reset –hard 命令可以撤消到指定提交之前的历史记录,并将工作树和索引恢复到指定提交的状态。由于此命令会完全丢弃正在进行的更改,请谨慎使用。

通过使用 “–hard” 选项,可以将工作目录和索引还原到指定提交的状态。换句话说,指定提交之后的所有更改都将被丢弃。因此,在执行之前需要仔细确认。

用中文本地化的方式重述以下命令,只给出一种选项:

git reset –soft

使用git命令撤销最新的提交,并保留更改。

使用git reset –soft命令,可以通过指定想要重置的提交来撤消到该提交为止的历史记录,而不改变工作目录和索引,只修改提交历史记录。

执行git reset –soft <提交ID> 可以将代码库回溯到指定提交ID的前一个状态,但工作树和索引状态将保持不变。这样一来,您可以重新将需要的更改添加到暂存区并进行提交。

git reset –soft命令可以用于修改过去的提交消息。例如,如果最新的提交消息有错误,可以使用git reset –soft HEAD~1命令返回到上一个提交,并使用git commit –amend命令来修改为新的消息。

交互式变基

rebase -i 是 Git 的一個命令選項,用於進行互動式的基於最新提交的操作。

通常情况下,在进行变基操作时,需要首先切换到当前分支的目标分支,然后执行变基操作来合并分支的历史记录。但是,使用rebase -i命令时,可以在执行变基操作之前,在可编辑的文本编辑器中查看修改的历史记录。

具体而言,通过执行git rebase -i <rebase目标分支>命令,可以打开一个可编辑的文本编辑器。在这里,您可以查看变更历史,对每个提交进行修改、跳过或改变提交顺序。

在整理多个提交或更改提交消息时,交互式 rebase 命令非常方便。此外,它还可以用于整理提交历史记录。请注意,由于要修改提交历史记录,因此需要谨慎使用。

广告
将在 10 秒后关闭
bannerAds