Git 个人笔记

156 阅读3分钟

1.基本命令

1.初始化
初始化为版本库(当前所在目录):git init

2.提交
将文件添加到暂存区:git add 【filename】
将全部更改提交到暂存区:git add -A
将所有文件从暂存区提交到版本库:git commit -m "【introduction】"
* 可以多次add之后,在一次性提交

3.查看
历史提交记录:git loggit log --pretty=oneline
查看每一次的命令(当已经回到历史版本,又想回到未来版本时,可用):git reflog
查看版本库状态:git status

4.版本回退
回退到指定版本:git reset --hard 【commit id】

5.放弃 “工作区” 修改:
让这个文件回到最近一次git commit或git add时的状态:git checkout -- 【filename】
等同于用暂存区(如果有就优先) 或 用版本库里的版本替换工作区的版本,无论工作区是修改还是删除

5.放弃 “暂存区” 修改:
撤销已经提交到暂存区的文件,重新放回工作区

6.删除文件:
删除工作区文件:rm 【filename】
删除版本库文件:git rm 【filename】

2.远程连接

2.1 配置

本地配置

// 参数 --global 代表这台机器上所有的 Git 仓库都会使用这个配置
git config --global user.name "Your Name"   
git config --global user.email "email@example.com"  

查看本地配置

git config --list

2.2 连接

2.2.1 生成公钥

若之前已经生成的的话就不用再生成了

ssh-keygen -t rsa -C "email@example.com"

2.2.2 查看公钥

// 1.查看ssh目录下的文件,其中 id_rsa 为私钥,id_rsa.pub为公钥
ls ~/.ssh

// 2.查看公钥
cat ~/.ssh/id_rsa.pub

2.2.4 GitHub配置公钥

cat ~/.ssh/id_rsa.pub查看的公钥全部复制,打开 GitHub->Settings->SSH and GPG keys->New SSH key,粘贴进去到 key框 中,其中 title框 随便写

image.png

2.2.4 验证是否成功

ssh -T git@github.com

// 初次设置会出现:Are you sure you want to continue connecting (yes/no/[fingerprint])?
// 只要输入 yes 即可

假如出现ssh: connect to host ssh.github.com port 443: Connection refused错误,有可能是网络问题,也有可能是代理出现问题,建议换成全局代理。

2.2.5 建立远程连接

假如此时 GitHub 中有库,配置如下:

image.png

那么可以将本地的仓库与GitHub上的该仓库建立远程连接

// 其中 origin为远程库的名字,可以起别的名字,不过一般习惯都是origin
// 其中第一个 pyplsp 为用户名,第二个 pyplsp 为仓库名
git remote add origin git@github.com:pyplsp/pyplsp.git

2.2.6 查看连接状态

// 列出已经存在的远程分支
git remote

// 列出详细信息,在每一个名字后面列出其远程url
git remote -v

2.2.6 删除连接

git remote rm 【仓库名】

git remote rm origin,删除远程库名为 origin 的仓库,删除其实就是解除了本地仓库与远程仓库的绑定关系

2.3 push

2.3.1 推送

// 将本地库所有内容推送到远程仓库上
git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程 的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

从现在开始,若本地仓库有更改,则可以通过以下命令把本地master分支的最新修改推送至GitHub

// 将本地库所有内容推送到远程仓库上
git push origin master

2.4 clone

例子:对 pyplsp/pyplsp 仓库进行克隆

git clone git@github.com:pyplsp/pyplsp.git

这样就成功在当前目录下获取远程仓库里的内容

也可以用 https 协议进行克隆:

git clone https://github.com/pyplsp/pyplsp.git