我要让你想起Git

首先

我忘记了如何使用Git。所以让我们一起回忆一下吧~ 这只是一个很简单的文章,请您谅解!

我使用了新買的Mac作業環境,真帥。如果能在這裡安裝Git,然後隨便創建一個倉庫,進行克隆和推送的操作測試,就達到目標了。

順便提一下,听说2022年10月会有搭载M2芯片的Mac面世。
我在同年9月购买了2021年款的Mac。
重要的事情应该早点说出来。

2. 安装Homebrew

安装Homebrew以便安装Git。按照官方指南进行操作。

 

安装后出现警告,查了一下说必须设置路径。通过谷歌搜索按照这篇文章的步骤操作解决了问题。非常感谢。

 

3. 安装Git

深思熟虑地执行,而不考虑太多。
soshi.sato是我的用户名(真实姓名),soshi.sato: ~/ %是提示符对吧。
接下来我会按照这种感觉继续写。

soshi.sato: ~/ % brew install git

虽然没有弹出什么”Success!!!!”的消息,但安装已经完成了。
上面写着”Complete云云”。

soshi.sato: ~/ % git version
git version 2.37.3

创建存储库

创建一个非常合适的存储库。
只放置了README文件。

 

5. 进行Git

我在这里检查自己写的文章,虽然内容很糟糕,但我想表扬一下当时写作的自己。

 

5-1. 克隆存储库

我会克隆到本地。

soshi.sato: ~/ % git clone https://github.com/sosat117/remember_git

5-2.查看git状态以及分支

记得切换到remember_git存储库,进行各种确认。

soshi.sato: ~/ % cd remember_git
soshi.sato: remember_git/ % git status
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

soshi.sato: remember_git/ % git branch
* main

主人而不是主要的嗎…?我本來還以為是主要的,但現在不在意了。

5-3. 我们要剪掉分支。

我随便将它命名为main_cron。
从这个地方开始,我开始回忆起当时的感觉了,动手真的很重要。

其实我刚刚想到,这难道不是克隆(clone)吗?哇
我的英语水平。。

soshi.sato: remember_git/ % git branch
* main
  main_cron

5-4. 切换分支

切换到之前创建的 cron。

soshi.sato: remember_git/ % git checkout main_cron
Switched to branch 'main_cron'
soshi.sato: remember_git/ % git branch
  main
* main_cron

顺便也确认一下状态。

soshi.sato: remember_git/ % git status
On branch main_cron
nothing to commit, working tree clean

5-5. 添加测试文件

使用vi添加一个适当的文件。

soshi.sato: remember_git/ % vi otameshi_git.txt
soshi.sato: remember_git/ % ls -lha
total 16
drwxr-xr-x   5 soshi.sato  staff   160B  9 28 17:01 .
drwxr-x---+ 22 soshi.sato  staff   704B  9 28 17:01 ..
drwxr-xr-x  12 soshi.sato  staff   384B  9 28 16:58 .git
-rw-r--r--   1 soshi.sato  staff    63B  9 28 16:41 README.md
-rw-r--r--   1 soshi.sato  staff    49B  9 28 17:01 otameshi_git.txt
soshi.sato: remember_git/ % cat otameshi_git.txt
This file is otameshi-text.
written by ssato117.

5-6. 查看状态

是红色的。

soshi.sato: remember_git/ % git status
On branch main_cron
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	otameshi_git.txt

nothing added to commit but untracked files present (use "git add" to track)

5-7. 添加到git

添加。这次文件名是固定的。状态是按照流程来的。是绿色的。

soshi.sato: remember_git/ % git add otameshi_git.txt
soshi.sato: remember_git/ % git status
On branch main_cron
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   otameshi_git.txt

5月8日的事情

我很高兴地完成了commit这件事。

soshi.sato: remember_git/ % git commit -m "add otameshi_git.txt"
[main_cron 1d319fc] add otameshi_git.txt
 Committer: soshi.sato <soshi.sato@soshisatonoMBP.usen.ad.jp>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly. Run the
following command and follow the instructions in your editor to edit
your configuration file:

    git config --global --edit

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 2 insertions(+)
 create mode 100644 otameshi_git.txt

soshi.sato@soshisatonoMBP.usen.ad.jp的样子真的太糟糕了吧,这下又多了一个问题。。

哦,commit的-m消息总是使用”add”或”modify”后面接文件名的形式。这方面应该有最佳实践。以后会去搜索一下。

状态也确认一下。变得很漂亮啊!

soshi.sato: remember_git/ % git status
On branch main_cron
nothing to commit, working tree clean

5-9推动

有什么事情发生了。

soshi.sato: remember_git/ % git push origin main_cron
Username for 'https://github.com': sosat117
Password for 'https://sosat117@github.com':
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/sosat117/remember_git/'

根据官方,密码认证在去年8月份已经结束!!!!!

 

如果我简要查看一下的话,似乎需要创建一个密钥对来进行认证。我会尝试一下。

在此之前,對init進行了偏離处理。

克隆远程仓库或者初始化本地仓库有很多方法,我个人几乎没有使用init,所以尝试了一下。

6-1.初始化git

超级黄。

soshi.sato: ~/ % git init remember_git2
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
Initialized empty Git repository in /Users/soshi.sato/remember_git2/.git/

在包含.git文件的目录中真是令人开心呢w

soshi.sato: remember_git2/ % ls -lha
total 0
drwxr-xr-x   3 soshi.sato  staff    96B  9 29 10:40 .
drwxr-x---+ 24 soshi.sato  staff   768B  9 29 10:40 ..
drwxr-xr-x   9 soshi.sato  staff   288B  9 29 10:40 .git

因为提示上写着“master”和“main”,所以我查了一下。据说,由于“master”和“slave”让人联想到奴隶制度,所以改成了“main”。我完全同感。

 

如果有人可能感到不舒服的话,我们应该避免这样做,这种思想成为标准就好了!

7. 再次推动

阅读公式之后,可以从图形用户界面创建令牌。

按照超级简单易懂的步骤创建令牌。

 

输入此令牌为密码并成功!太棒了!!

soshi.sato: remember_git/ % git push origin main_cron
Username for 'https://github.com': sosat117
Password for 'https://sosat117@github.com':
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 347 bytes | 347.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'main_cron' on GitHub by visiting:
remote:      https://github.com/sosat117/remember_git/pull/new/main_cron
remote:
To https://github.com/sosat117/remember_git
 * [new branch]      main_cron -> main_cron

看到GUI,发现添加了一个切割的分支。完美。
因为大致能猜到Pull Request的情况,所以不会去做了。

8. 关于.DS_Store文件的逸脱问题

当我从Mac上进行push操作时,我常常会将.DS_Store文件一并上传,这让我想起了这一点。
但是我注意到,无论是克隆过来的本地代码库,还是初始过的本地代码库都不存在该文件。

只是感觉像是在常见的主目录下!所以,是有什么变化吗…?
这次就只调查了一下DS_Store是什么东西并且怎么删除。

 

9. 最后

当我开始动手做的时候,记忆也随之复苏。而且Github的进化速度真的很快。
敏感的部分也得到了改善,让我更加喜欢这项服务。

另外,我在前辈们的博客中也得到了很多帮助。在这里借机表示感谢!果然工程师们的集体智慧是最棒的。

由于尚有许多不了解的地方,如冲突等问题,我将继续努力学习Git的道路!

10. 补充记录

删除文件时使用git rm而不是rm。
我感到困惑。。w

希望这篇文章对您有所帮助。