git:通过命令行执行本地 Git 工作流
Posted it_xiangqiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git:通过命令行执行本地 Git 工作流相关的知识,希望对你有一定的参考价值。
通过命令行执行本地 Git 工作流
- 创建目录
- 创建一些文件
- 创建一个新的 Git 仓库
- 查看仓库的当前状态
- 向暂存区域添加更改
- 更改暂存的文件
- 将暂存更改提交到存储库
- 查看提交历史记录
- 查看提交的更改
- 删除文件
- 使用 git 修正更正提交更改
- 提交 .gitignore 文件
在本练习中,使用 Git 命令行创建本地 Git 存储库并提交到该存储库。
打开操作的命令外壳。
有些命令是特定于 Linux 的,例如,附加到文件或创建目录。将这些命令替换为操作系统的命令。命令前的注释(标有 #)解释了特定操作。
创建目录
以下命令创建一个空目录,本练习稍后将使用它来包含工作树和 Git 存储库。
# switch to a directory of your choice and
# create a directory named "repo01" and switch
mkdir repo01
cd repo01
# create a new
创建一些文件
使用您喜欢的文本编辑器在当前文件夹中创建以下文件和目录结构。
数据文件/数据.txt
测试01
测试02
测试03
您也可以通过命令行创建这些文件,例如,以下命令通过命令行在 Linux 上创建这些文件。
# ensure that you are in your Git Git repository
# create an empty file in a new
touch datafiles/data.txt
touch test01
touch test02
touch test03
创建一个新的 Git 仓库
使用该命令在创建的目录中创建新的本地 Git 存储库。Git 不关心您是从空目录开始,还是已经包含文件。git init
# initialize the Git repository for
存储库文件夹中的所有文件(不包括该文件夹)都是工作树。.git
查看仓库的当前状态
通过以下命令查看存储库的状态。
git status
输出类似于以下清单。
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
datafiles/
test01
test02
test03
nothing added to commit but untracked files present (use "git add" to track)
向暂存区域添加更改
通知 git,应使用该命令将所有新文件添加到 Git 存储库。git stage
# add all files to the index of the Git repository
git stage .
# if stage is not available use git add instead, stage was added around 2020
然后再次运行该命令以查看当前状态。以下清单显示了此命令的输出。git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: datafiles/data.txt
new file: test01
new file: test02
new file:
更改暂存的文件
调整现有文件。
# append a string to the test03 file
echo "foo2" >>
验证新更改是否尚未暂存。
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: datafiles/data.txt
new file: test01
new file: test02
new file: test03
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified:
将新更改添加到暂存区域。
# add all files to the index of the Git repository
git stage .
再次使用该命令可查看是否已暂存所有更改。git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: datafiles/data.txt
new file: test01
new file: test02
new file:
将暂存更改提交到存储库
将暂存更改提交到 Git 存储库。
# commit your files to the local repository
git commit -m "Initial commit"
查看提交历史记录
提交操作在文件夹内的本地存储库中创建了文件的新版本。运行该命令以查看历史记录。.gitgit log
# show the Git log for
您会看到类似于以下内容的输出。
commit dbbd83bffddb8b9129f37912338011bb82927d0e (HEAD -> master)
Author: Lars Vogel <xq.com>
Date: Mon Feb 8 21:53:12 2021 +0100
查看提交的更改
使用该命令查看提交的更改。如果将提交引用指定为第三个参数,则用于确定更改,否则将使用 HEAD 引用。git show
删除文件
删除文件。使用该命令暂存删除以进行下一次提交。git stage .
# remove the "test03" file
rm test03
# add and
git stage .
git commit -m "Removes the test03 file"
或者,您可以使用该命令从工作树中删除文件,并在暂存区域中记录文件的删除情况。git rm
8.11. 恢复工作树中文件中的更改
使用该命令(或在较旧的 Git 命令行工具中)将跟踪的文件(曾经暂存或提交的文件)重置为其最新的暂存或提交状态。git resetgit checkout
通过签出当前提交之前的最后一个版本(HEAD~1)来恢复已删除的文件。
git checkout HEAD~1 --
签出状态并再次提交文件。
git status
git commit -m "Adding test03 back"
您还可以将文件的内容替换为其最后阶段版本或某个提交中的版本。
在下面的示例中,您将重置工作树中的一些更改。
echo "useless data" >> test02
echo "another unwanted file" >> unwantedfile.txt
# see the status
git status
# remove unwanted changes from the working tree
# CAREFUL this
git restore test02
# unwantedstaged.txt is not tracked by Git simply delete
rm unwantedfile.txt
如果使用命令,您将看到工作目录中没有留下任何更改。git status
On branch master
nothing to commit,
请谨慎使用此命令。该命令将删除工作树中跟踪文件(Git 已知的文件)的更改,并且无法通过 Git 还原此删除。git reset
使用 git 修正更正提交更改
该命令可以返工上次提交的更改。它将使用调整后的更改创建新的提交。git commit --amend
修改后的提交仍然可用,直到清理作业将其删除。但它不包含在输出中,因此它不会分散用户的注意力。git log
假设最后一个提交消息不正确,因为它包含拼写错误。以下命令通过参数更正此问题。–amend
# assuming you have something to commit
git commit -m "message with a tpyo here"
# amend the last commit
git commit --amend -m "More changes - now correct"
您应仅将该命令用于尚未推送到另一个 Git 存储库的公共分支的提交。该命令会创建一个新的提交 ID,用户可能已经将他们的工作基于现有的提交。如果是这种情况,他们需要根据新的提交迁移其工作。git --amendgit --amend
8.13. 忽略带有 .gitignore 文件的文件和目录
在 Git 目录的根目录中创建以下文件,以忽略指定的目录和文件。.gitignore
cd ~/repo01
touch .gitignore
echo ".metadata/" >> .gitignore
echo "doNotTrackFile.txt" >> .gitignore
上述命令通过命令行创建文件。更常见的方法是使用您喜欢的文本编辑器来创建文件。此编辑器必须将文件另存为纯文本。例如,这样做的编辑器是Ubuntu下的gedit或Windows下的Notepad。
生成的文件类似于以下清单。
.metadata/
doNotTrackFile.txt
提交 .gitignore 文件
最好将文件提交到 Git 存储库中。为此,请使用以下命令。.gitignore
# add the .gitignore file to the staging area
git stage .gitignore
# commit the change
git commit -m "Adds .gitignore file"
以上是关于git:通过命令行执行本地 Git 工作流的主要内容,如果未能解决你的问题,请参考以下文章