Git使用笔记

初始设置

设置姓名和邮箱地址

设置使用Git时的姓名和邮箱地址,注意使用英文。

git config --global user.name "MinBadGuy"
git config --global user.email "[email protected]"

SSH密钥配置

生成SSH Key

ssh-keygen -t rsa -b 4096 -C "[email protected]"

这里可以不设置密码,直接回车即可,若设置了密码,后续使用某些git命令时可能需要验证密码,比较麻烦。
这里会在/Users/***/.ssh/目录下生成id_rsaid_rsa.pub两个文件,分别为私有密钥和公开密钥。

添加公开密钥

在Github中添加SSH公开密钥,按下图顺序,将id_rsa.pub文件中的内容复制后粘贴在3处,最后点击Add SSH Key
Git使用笔记_第1张图片
添加完成后进行SSH通信验证,执行如下命令。

ssh -T [email protected]

常用操作

clone已有仓库

git clone 远程仓库路径
# 例:git clone [email protected]:MinBadGuy/Assembly.git

通过git clone命令将Github上的仓库克隆至本地。

查看仓库状态

git status

通过git status命令查看仓库的状态,未被添加至Git仓库的文件显示为Untracked files,文件名以红色高亮显示。

提交文件

# 先将文件加入暂存区
git add 文件名
# 再提交
git commit -m "提交信息"
# 查看提交日志
git log

更新远程仓库

git push

通过git push命令将Github上的远程仓库进行更新。

基本操作

git init——初始化仓库

git init

执行之后,会在当前目录下生成一个.git的目录,这个目录里存储着管理当前目录内容所需的仓库数据,这个目录的内容被称为附属于该仓库的工作树

git status——查看仓库的状态

git status

只要对Git的工作树或仓库进行操作,git status的显示结果就会发生变化。

git add——向暂存区中添加文件

git add 文件名

暂存区是提交前的一个临时区域,将文件加入暂存区后,该文件就成为Git仓库的管理对象。

git commit——保存仓库的历史记录

git commit -m "提交信息"

通过git commit命令可以将暂存区中的文件保存到仓库的历史记录中,后续可根据这些记录复原文件。
-m参数中的字符串是对本次提交的概述。

git log——查看提交日志

# 查看上一次提交操作的日志
git log

# 显示指定目录/文件的日志
git log 目录名/文件名

# 显示文件的改动
git log -p 文件名

git diff——查看更改前后的差别

# 显示工作树与暂存区之间的差异
git diff

# 显示工作树与上次提交之间的差异
git diff HEAD

HEAD是指向当前分支中最新一次提交的指针。

分支的操作

master分支是Git的默认创建的分支,所有的开发基本上都是以这个分支为中心进行的。不同的分支中,可以同时进行完全不同的作业,等该分支的作业完成后再与master分支合并。
注:后续版本的Github中的默认分支为main

git branch——显示分支一览表

git branch

git branch命令将分支名以列表显示,并指明当前所在分支(分支名左侧标有星号*)。

git checkout -b ——创建、切换分支

# 以master为基础创建新分支,并切换至新分支
git checkout -b 新分支名

# 上述命令等效于以下两条命令
git branch 新分支名
git checkout 新分支名

# 切换回上一个分支
git checkout -

git branch -d——删除分支

git branch -d 分支名

merge——合并分支

将特性分支feature-A合并至主干分支master

# 先切换至master分支
git checkout master

# 再创建合并提交
git merge --no-ff feature-A

get merge命令默认会启动编辑器,若编辑器启动失败,Git会提示继续使用git commit命令完成合并。

git log --graph——以图表形式查看分支

git log --graph

图表形式的日志可以直观地看出分支的合并。

更改提交的操作

git reset——回溯历史版本

git reset --hard 目标时间点的哈希值

git commit -amend——修改提交信息

git commit --amend

命令输完后会启动编辑器,修改提交信息即可。
若编辑器启动失败,Git提示使用-m-F选项来提供信息。

git rebase -i——压缩历史

# 将包含HEAD在内的两条最新历史记录合并成一次提交
git rebase -i HEAD~2

输完命令后会打开编辑器,然后将第二个记录哈希值左侧的pick改成fixup

推送值远程仓库

git remote add——添加远程仓库

git remote add origin 仓库路径
# 例:git remote add origin [email protected]:MinBadGuy/Assembly.git

git remote add命令会将路径中的仓库设置成本地仓库的远程仓库,并将远程仓库的名称设置成origin标识符。

git push——推送至远程仓库

# 将当前分支的内容推送给远程仓库的origin的master分支
git push -u origin master

# 推送至master分支以外的分支
git push -u origin 其他分支名

-u参数可以在推送的同时,将origin仓库的master分支设置成本地仓库当前分支的upstream(上游)。添加了这个参数,将来运行git pull命令从远程仓库获取内容时,本地仓库的这个分支就可以直接从originmaster分支获取内容,省去了另外添加参数的麻烦。

从远程仓库获取

git clone——获取远程仓库

git clone 远程仓库路径
# 例:git clone [email protected]:MinBadGuy/Assembly.git

执行git clone命令后,默认处于master分支下,同时将origin设置成该远程仓库的标识符,即当前本地仓库的master分支与远程仓库(origin)的master分支内容是完全相同的。

# -a参数可同时显示本地仓库和远程仓库的分支信息
git branch -a
# 获取远程仓库的非master分支
git checkout -b 新建本地仓库分支名 origin/远程仓库分支名
# 例:git checkout -b feature-D origin/feature-D 

上述命令中,一般将新建的本地仓库分支与远程仓库分支同名。

git pull——获取最新的远程仓库分支

git pull origin 分支名

参考书籍

GitHub入门与实践

你可能感兴趣的:(Git,git,github,ssh)