1.基本命令
1.初始化
初始化为版本库(当前所在目录):git init
2.提交
将文件添加到暂存区:git add 【filename】
将全部更改提交到暂存区:git add -A
将所有文件从暂存区提交到版本库:git commit -m "【introduction】"
* 可以多次add之后,在一次性提交
3.查看
历史提交记录:git log 或 git 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框 随便写
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 中有库,配置如下:
那么可以将本地的仓库与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