Git总结【备忘录】

初次见面,我是Taku3。
最近在学习关于Git的内容,所以我会将学到的东西记录下来并进行输出。

Git 是一种版本控制系统。

将编写的源代码按版本整理的工具称之为。
有各种各样的工具,如Git、GitHub等,但可以使用Git(本地工具)来管理的代码上传到GitHub(Web服务)。使用这些工具的好处是,

    • ソースコードのバージョン管理

 

    開発チーム内(またはチーム外)での共有

以下列举了一些例子可供参考。

关于在Git和GitHub上的版本控制

在Git和GitHub中具有以下特点。

    1. 保存快照

 

    引用之前的版本

关于第一点,首先关于数据的保存方法,我认为有两种选择:一种是“完整保存数据”,另一种是“保存数据内发生的变化”。在Git中,采用了前一种方法,也就是完整保存(作为快照),而不会计算与上次上传时的差异,所以比较快(如果没记错的话)。

关于2,Git将上传(即提交)的数据与上次提交的数据关联为父提交。

下面的图片是一个例子,随着从版本1到版本2和版本3的更新,文件A被更新为文件A’,文件C被更新为文件C’和文件C”。

無題のプレゼンテーション (1).jpg

如果没有使用像Git这样的工具,而是使用共享文件夹等进行版本管理,可能会在同一文件夹中混合多个版本,甚至可能没有保留过去的版本。因此,在Git或GitHub上进行管理是有很大意义的。

基本指令 (jī zhǐ lì)

上台演出并提交到本地仓库

git add <ファイル名>(. とすると今のディレクトリの全ファイル)
↓
git commit -m "<message>"

在当前工作树上进行的更改文件需要首先添加到暂存区,以准备进行提交和反映。这就是git add的作用。
之后,执行git commit即可将更改完全反映到本地仓库。

通过添加-a选项并提交(commit),可以省略git add命令。

git commit -a -m "<メッセージ>"

将代码推送到GitHub

git remote add <リモート名> <URL>
↓
git push <上記のリモート名> <ブランチ名>
$ git remote add origin https://github.com/<GitHubアカウント名>/<リポジトリ名>.git
$ git push -u origin master

分支是为了多人并行开发而存在的功能。它是指在父子关系中连接的提交上指向哪个提交文件的指针。

通过在团队中的几个人从一个提交文件A中分支出来进行修改,可以在保持提交文件A稳定运行的同时,各自的提交文件上进行新功能的开发和改修。(如果修改得当,可以将其与原提交文件A合并以进行更新)

另外,通过在git push命令后加上-u选项,可以从下次开始只需用git push命令就能将文件推送到同一个仓库中。

确认文件状态

git status

可以确认文件是否已更改、是否已进行git add等操作。
每次在确认更改情况的同时进行git add和commit。

取消更改工作区

git checkout -- <ファイルorディレクトリ名>

由于git checkout <分支名>(切换分支)和混合在一起,最好加上–。

取消在舞台上新增的更改

git reset HEAD <ファイル名orディレクトリ名>

在本地版本库的最新信息(HEAD)中覆盖(或还原)已暂存的文件。

重新执行上一个提交

git commit --amend

在提交文件后,假设需要进行进一步的修正。在提交后,在工作区进行修正,然后使用git add将其添加到暂存区,接着使用git commit –amend命令可以覆盖(1)处的提交结果。这样可以避免生成多余的提交文件。

如果已经将文件版本3提交到远程仓库,请不要这样做。

假设某个人在提交了文件版本3之后,A先生在版本3的基础上进行了修改。如果在A进行修改期间,B先生进行了pull并进行了修改,则A和B之间的提交文件修订历史将产生矛盾。

确认差异

git diff

查看工作目录和暂存区之间的差异确认。
– 添加`–staged`选项可查看暂存区和本地仓库之间的差异。

删除文件

git rm <ファイル名>
または
git rm -r <ディレクトリ名> 

基本上类似于Linux命令。
通常情况下,它会在工作区、暂存区和本地仓库中被删除,但如果加上–cached参数,则只会删除本地仓库。

移动文件

git mv

设定别名

git config --global alias.<エイリアス名> <コマンド名>

加上global选项后,配置会适用于整个电脑系统。

请您核实日志。

git log
git log --oneline
git log -n <num>
など

远程信息显示

git remote
git remote -v(URL表示)
git remote show <リモート名>

git remote show会显示比前两个更详细的信息。

从GitHub获取信息(获取/抓取)。

git fetch <リモート名>
git merge origin/main

通过git fetch命令,可以将origin/main等本地分支保存下来。
通过执行git merge命令,可以将其反映到工作目录中。
虽然有点偏离话题,但merge操作有快进合并和自动合并两种方式。

【Git】mergeの違い (1).jpg

快速转发是指切换到下一个提交文件的分支。
自动合并是将多个提交文件合并成一个新的提交文件,然后更新该分支指向它。

从GitHub上获取信息(拉取)

git pull <リモート名> <ローカルのブランチ名>

无论pull命令与哪个具有所需数据的分支相关,它都会保存在当前所在的分支中,所以请注意。
(例如:在main分支上pull feature分支,数据将保存在main分支中。)

更改远程名称

git remote rename <旧リモート名> <新リモート名>

删除远程名称

git remote rm <リモート名>

切换分支

git checkout <ブランチ名>

创建新的分支

git branch <ブランチ名>

因为仅有这一步不足以进行切换,所以请在创建后使用git checkout。
或者可以使用以下命令来创建并切换分支。

git checkout -b <作成するブランチ名>

显示分支列表

git branch (-a)

在中国, 只需要一个选项,进行以下内容的中文本地化:
-带有a的全权表示

确认分支所指的内容

git log --oneline --decorate

目前的分支名更改

git branch -m <新しいブランチ名>

删除分支

git branch -d <ブランチ名>

如果存在未合并到main分支的文件等,则不会被删除。要强制删除,请将-d更改为-D并执行。

重新基礎

git rebase <ブランチ名>

Rebase是用于整理提交记录的功能。

【Git】mergeの違い (2).jpg

此外,作为重新基础的其他用途之一,还可以一次修复多个提交。

git rebase -i HEAD~3

当进行rebase操作时,编辑器会显示与最近的三个commit相关的以下信息。

pick kei43bd commit 1
pick 83ugj32 commit 2
pick 3i2jed4 commit 3

将pick这部分改成edit

git commit --amend

可以重新开始或进行修改。
如果您在上述中进行了多次编辑,

git rebase --continue

你将能够输入下一个提交的更改命令。

标签的显示

git tag

创建带注释的标签

git tag -a "<タグ名>" -m "<メッセージ>"

创建轻量版标签

git tag "<タグ名>"

对先前的提交进行标记

git tag "<タグ名>" <コミット名>

标签数据显示

git show "<タグ名>"

请注意,由于标签需要另外进行推送,请确保进行相应操作。

git push <リモート名> <タグ名>

躲避一次

git stash (save)

save 可省略。

退避确认

git stash list

这句话的中文翻译可以是:从退避到恢复

git stash apply

要想还原舞台的状况,

git stash apply --index

特定的疏散复原

git stash apply stash@{x}

您可以在x中找到stash的顺序,并通过git stash list进行确认。

最新的逃离删除

git stash drop

删除特定的撤离活动

git stash drop stash@{x}

撤退并全面删除

git stash clear

因为虽然我已经学到了一些知识,但是尚未真正掌握,所以只有通过实践才能稳固。而且我会不断学习新知识,并进行更新。

广告
将在 10 秒后关闭
bannerAds