Git 版本控制的简单使用记录

        持续记录自己常用Git的一些习惯        

 __    __   _______  __       __        ______        _______  __  .___________.
|  |  |  | |   ____||  |     |  |      /  __  \      /  _____||  | |           |
|  |__|  | |  |__   |  |     |  |     |  |  |  |    |  |  __  |  | `---|  |----`
|   __   | |   __|  |  |     |  |     |  |  |  |    |  | |_ | |  |     |  |     
|  |  |  | |  |____ |  `----.|  `----.|  `--'  |    |  |__| | |  |     |  |     
|__|  |__| |_______||_______||_______| \______/      \______| |__|     |__|     

一、Git基础配置

[Git - Book]引用👇

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 在本书所展示的例子中,我们对保存着软件源代码的文件作版本控制,但实际上,你可以对任何类型的文件进行版本控制。

1.1 学习地址链接

👉 https://git-scm.com/

👉 Git - Book

👉 Learn Git Branching

👉 Git 大全 - Gitee.com

1.2 配置个人账号

以下命令使用的 Git bash 执行

1.2.1 基础配置信息

# 列出本地配置信息
$ git config --list --global

# 清除之前的全局配置 (第一次使用请忽略)
git config --global --unset user.name
git config --global --unset user.email

1.2.2 配置远程仓库SSH Key

🚩 先注册好GitHub 或者 Gitee 个人账号

  • 配 SSH Key

怎样生成公钥、添加SSH公钥?

https://gitee.com/help/articles/4181
添加SSH公钥

Connecting to GitHub with SSH - GitHub Docs

最后,配置全局用户即可,完成!

git config --global user.username "your_name"
git config --global user.email "your_email"

1.2.3 配置远程多个仓库(实际并没有用...虽然再 bash 上起作用了,但是其它工具上不行,比如 idea 无法clone。 再重新查找资料后再更新)

以下是多个仓库的配置:没有找到啥优雅的切换方式,当前方法:配置两个sshkey, 然后对应仓库配置 local 本地用户

  • 配置 GitHub 和 Gitee 仓库

ssh-keygen -t ed25519 -C "your_email@example.com"

# 指定存储路径和文件名 一般使用默认C盘路径即可,我这里是不放在C盘
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\aj/.ssh/id_ed25519):
D:/.ssh/id_ed25519_gitee
$ ls
id_ed25519_gitee      id_ed25519_github
id_ed25519_gitee.pub  id_ed25519_github.pub

默认只读取id_rsa,为了让ssh识别新的私钥,需将其添加到ssh-agent中。

# ssh-agent运行 可使用如下命令,显示 pid 可看到进程
$ eval "$(ssh-agent -s)"
Agent pid 520 

# 开始将其添加到SSH代理
$ ssh-add /d/.ssh/id_ed25519_github
Identity added: /d/.ssh/id_ed25519_github 

$ ssh-add /d/.ssh/id_ed25519_gitee
Identity added: /d/.ssh/id_ed25519_gitee 
  • 将ssh key 分别配置到的GitHub 和 Gitee 地址上
# 测试连接  
$ ssh -T git@github.com
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

# 得到一堆提示:无法确定这个host 'github.com (20.205.243.166)'的真实性 直接输入 yes
# key fingerprints 的说明如下:
# https://docs.github.com/en/enterprise-cloud@latest/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints 

Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Hi andreamwu! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@gitee.com
Hi andreamwu! You've successfully authenticated, but GITEE.COM does not provide shell access.

最后会在默认的.ssh 文件夹(即 C:\Users{你的电脑用户名}/.ssh)下生成known_hosts文件,记录了gitee.com github.com 的信息

1.2.4 拉取远程仓库项目,配置 local 用户

  • Gitee
$ git clone git@gitee.com:andreamwu/hello-git.git
Cloning into 'hello-git'...
remote: Enumerating objects: 15, done.
remote: Total 15 (delta 0), reused 0 (delta 0), pack-reused 15
Receiving objects: 100% (15/15), done.
Resolving deltas: 100% (2/2), done.

$ cd hello-git/
$ git branch -v
* master d8d3441 Test push to Gitee
$ git pull --rebase
Updating 7efcd88..d8d3441
Fast-forward
 README.md | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

$ ls
README.md 
# 编辑一下,测试提交
$ vi README.md 
# 编辑完成测试提交 
$ git commit -a -m "update README.md"
Author identity unknown

*** Please tell me who you are.

Run

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

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address 
# 这就配置局部仓库用户就可以了
git config --local user.email "you@example.com"
git config --local user.name "Your Name"

# 配置完成再提交一次验证结果
$ git commit -a -m ":v: update README.md"
[master cb9bd83] :v: update README.md
 1 file changed, 3 insertions(+), 1 deletion(-)

$ git push origin master

查看push 结果 👇
查看push结果截图

  • GitHub
$ git clone git@github.com:andreamwu/my-notes.git
$ cd my-notes/
$ git pull --rebase
Already up to date.

$ ls
Git仓库的使用记录.md  README.md
$ vi README.md
$ git commit -a -m "update README.md"
Author identity unknown

*** Please tell me who you are.

Run

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

to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address
# 配置局部仓库用户完成,继续提交验证
git config --local user.email "you@example.com"
git config --local user.name "Your Name"

$ git commit -a -m ":heavy_check_mark: update README.md"
[master c435ee6] :heavy_check_mark: update README.md
 1 file changed, 3 insertions(+)
$ git push origin master

查看push 结果 👇
查看push至GitHub结果jiet

二、常用命令

2.1 查看提交日志

  • 使用格式占位符的形式
# %h    提交对象的简短哈希字串
# %cn   提交者(committer)的名字
# %cr   提交日期,按多久以前的方式显示
# %s    提交说明
$ git log -3 --pretty=format:" %h %cn [%cr] %s "
 9ac31a6 andreamwu [20 minutes ago] 修该pom版本管理依赖
 a1263a9 andreamwu [5 days ago] 初次上传
 d5e80fe Gitee [5 days ago] Initial commit
  • 将每个commit压缩成一行
$ git log -3 --oneline
9ac31a6 (HEAD -> master, origin/master, origin/HEAD) 修该pom版本管理依赖
a1263a9 初次上传
d5e80fe Initial commit

posted @ 2022-01-15 11:03  andreamwu  阅读(37)  评论(0编辑  收藏  举报