Git: getting started

Contents

    • 0 从0开始
      • 开始之前,配置用户名和email
    • 1 初始化代码仓库 `git init`
    • 2 Git 常见操作
      • 2.1 最常用的命令
      • 2.2 Git 的暂存区和工作区
      • 2.3 Git 对文件重命名
    • 3 关联 GitHub
      • 3.1 配置 SSH key
      • 3.2 添加本地 SSH key 到 GitHub账户
      • 3.3 测试:你成功了吗
    • 4 将本地仓库上传到GitHub

0 从0开始

开始之前,配置用户名和email

git config --global user.name 'my_name'
git config --global user.email '[email protected]' 

--global 是啥意思呢?

  • system:对系统所有的登陆用户有效
  • global:(最常用)全局变量,对所有仓库有效
  • local:局部变量,仅对当前代码仓库有效,优先于global的变量

使用 --list 检查你的配置:

git config --list \\默认为global
git config --list --local

1 初始化代码仓库 git init

  • 将已有项目代码纳入 Git 管理
cd PROJECT_PATH
git init
  • 直接用Git新建项目并纳入管理
cd SOME_PATH
git init YOUR_PROJECT_NAME
cd YOUR_PROJECT_NAME

2 Git 常见操作

2.1 最常用的命令

1:查看仓库当前状态

git status

2:查看仓库的历史记录

git log 			# 当前分支的历史
git log BRANCH_NAME # 某个分支的历史
git log --oneline 	# 简介版的log
git log --oneline -all # all branches
git log -n2 		# 查看最近的2条记录
git log --oneline -all -n3 -graph # all branches, recent 3 logs, graphical view

2.2 Git 的暂存区和工作区

Git会在仓库下建立一个临时暂存区,你可以添加某个版本的代码到暂存区,然后在工作区放心修改自己的代码,如果想放弃修改之后的版本,或者不小心搞错了,可以回退到之前版本(命令 git checkout --[FILE_NAME] 下次再说)。

添加某个文件到暂存区:

git add FILE_PATH
git add -u \\ 一键添加所有git已经跟踪的文件

确认操作,并且在-m之后添加备注说明(可为空)

git commit -m 'description'

危险操作: 把暂存区和工作区的内容清空

git reset --hard

2.3 Git 对文件重命名

如果想对某个文件重命名,可以直接手动(不通过 git)来对文件重命名,此时 git 会识别成两个操作:1. 原始文件被删除,2. 新文件被建立。因此必须add新文件到工作区,然后commit,总之操作会繁琐一些。

其实最方便的方式是使用git来操作:

git mv old_name new_name
git commit -m 'change file name'

3 关联 GitHub

当向远端代码仓库上传代码的时候,远端仓库需要知道你的身份。有两种方式:

  • HTTP协议:需要输入用户名和密码
  • SSH key:只要将本地的SSH key添加到远端仓库的账户之下,就可以将本地和远端账户关联起来,不用每次都输入用户名和密码了。

3.1 配置 SSH key

  • 主要作用:生成本地设备的身份标识
  • GitHub官方配置教程:
    https://docs.github.com/en/github/authenticating-to-github/about-ssh

首先查看本地是否有已经配置的SSH key:

ls -al ~/.ssh

通常 ls 会列出当前目录下的所有文件名,但是隐含文件(名字 . 以开头)不会显示。
增加 -al 指的是列出包括隐藏文件在内的所有文件名。

如果没有配置过SSH key,则上述命令会报错(文件不存在);如果有,则会看到其中某个文件长下面的样子:

id_rsa.pub
id_ecdsa.pub
id_ed25519.pub

生成新的 SSH key:

$ ssh-keygen -t ed25519 -C "[email protected]"

其中 ed25519 表示使用的加密算法,也可以使用 rsa

之后会让你输入一个文件地址作为存储位置,可以直接回车,默认地址是这样的形式: /Users/you/.ssh/id_ed25519

后面的设置 “passphrase” 的过程也可以直接回车跳过。

3.2 添加本地 SSH key 到 GitHub账户

(复制SSH key)打开新生成的 SSH key 的文件(假设地址为~/.ssh/id_ed25519.pub),将其内容全部复制;

或者也可以在终端操作:

$ pbcopy < ~/.ssh/id_ed25519.pub

然后到GitHub的设置页面,如下图,点击右上角的 “New SSH keys”

将剪切板上的SSH key 粘贴到下面红框的位置就 OK 啦~
Git: getting started_第1张图片

3.3 测试:你成功了吗

$ ssh -T [email protected]
# Attempts to ssh to GitHub

如果你收到下面提示,说明成功了:

Warning: Permanently added the RSA host key for IP address ‘52.74.223.119’ to the list of known hosts.
Hi XXXXX(你的名字)! You’ve successfully authenticated, but GitHub does not provide shell access.

4 将本地仓库上传到GitHub

在远端GitHub新建一个代码仓库,最好为空, 或者只增加必要文件。仓库建好之后,Github会出现下面的提示:

Git: getting started_第2张图片

注意

如果提示两个分支历史不相关,可以在命令后增加设置--allow-unrelated-histories,比如

  • git pull --allow-unrelated-histories origin main
  • git push --allow-unrelated-histories origin main

学废了嘛

你可能感兴趣的:(数学girl的代码小记,git,github)