git config --global user.name 'my_name'
git config --global user.email '[email protected]'
--global
是啥意思呢?
使用 --list
检查你的配置:
git config --list \\默认为global
git config --list --local
git init
cd PROJECT_PATH
git init
cd SOME_PATH
git init YOUR_PROJECT_NAME
cd YOUR_PROJECT_NAME
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
Git会在仓库下建立一个临时暂存区,你可以添加某个版本的代码到暂存区,然后在工作区放心修改自己的代码,如果想放弃修改之后的版本,或者不小心搞错了,可以回退到之前版本(命令 git checkout --[FILE_NAME]
下次再说)。
添加某个文件到暂存区:
git add FILE_PATH
git add -u \\ 一键添加所有git已经跟踪的文件
确认操作,并且在-m
之后添加备注说明(可为空)
git commit -m 'description'
危险操作: 把暂存区和工作区的内容清空
git reset --hard
如果想对某个文件重命名,可以直接手动(不通过 git)来对文件重命名,此时 git 会识别成两个操作:1. 原始文件被删除,2. 新文件被建立。因此必须add新文件到工作区,然后commit,总之操作会繁琐一些。
其实最方便的方式是使用git来操作:
git mv old_name new_name
git commit -m 'change file name'
当向远端代码仓库上传代码的时候,远端仓库需要知道你的身份。有两种方式:
首先查看本地是否有已经配置的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” 的过程也可以直接回车跳过。
(复制SSH key)打开新生成的 SSH key 的文件(假设地址为~/.ssh/id_ed25519.pub),将其内容全部复制;
或者也可以在终端操作:
$ pbcopy < ~/.ssh/id_ed25519.pub
然后到GitHub的设置页面,如下图,点击右上角的 “New SSH keys”
将剪切板上的SSH key 粘贴到下面红框的位置就 OK 啦~
$ 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.
在远端GitHub新建一个代码仓库,最好为空, 或者只增加必要文件。仓库建好之后,Github会出现下面的提示:
注意
如果提示两个分支历史不相关,可以在命令后增加设置--allow-unrelated-histories
,比如
git pull --allow-unrelated-histories origin main
git push --allow-unrelated-histories origin main
。学废了嘛