git:通过命令行执行本地 Git 工作流

Posted it_xiangqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git:通过命令行执行本地 Git 工作流相关的知识,希望对你有一定的参考价值。


通过命令行执行本地 Git 工作流


在本练习中,使用 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 工作流的主要内容,如果未能解决你的问题,请参考以下文章

Git婴幼儿使用手册十分钟让你帅气的使用命令行和团队工作

如何用git命令行上传本地代码到github

git命令行命令

git多人协同开发 命令行

git怎么查看版本命令行

git