Git 使用
Git 简介
git 是什么?
git 是目前世界上最先进的分布式版本控制系统
添加文件到 git 仓库需要两步
使用命令
git add <file> <file>
可以反复使用使用命令
git commit -m <message>
完成
掌握工作区的状态使用 git status
命令,使用 git diff
查看修改内容
HEAD
指向的版本是当前版本,因此 Git 允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id
HEAD^ 代表上一个版本,上上个版本就是 HEAD^^ ,往上 100 个版本可以写 HEAD~100
使用 git log
查看提交历史
用 git reflog 查看命令历史
用 Q
推出某个命令
rm <file>
删除本地工作区中的,然后 git rm <file>
然后 git commit -m info
工作区和暂存区
Git 和其他版本控制系统,比如:SVN 的一个不同之处就是有暂存区的概念。
工作区(Working Directory):就是电脑中可以看到的目录,比如我的 git 学习仓库:E:\myfile\MyWork\gitproject
版本库(Respository):工作区中有一个隐藏的目录 .git
,这个不算工作区,而是 git 的版本库。
Git 版本库中存了很多东西,其中最重要的就是称为 stage (或者叫 index)的暂存区,其实还有Git 为我们自动创建的第一个分支 master
,以及指向 master
的一个指针叫 HEAD
。
image
我们把文件往 Git 版本库里添加的时候,是分两步执行的:
用
git add
把文件添加进去,实际上就是把文件修改添加到暂存区;用
git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
管理修改
Git 跟踪并管理的是修改,而非文件。
git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新的版本的区别。
git checkout -- <file>
把 file 在工作区中的修改全部撤销。其实是用版本库中的版本替换工作区版本。
git reset HEAD <file>
把暂存区的修改撤销掉,重新放回工作区。
小结
场景一:你在工作区修改了某个内容导致错误,想丢弃刚哥修改的内容。用命令 git checkout -- <file>
。
场景二:你不但改乱了某个文件的内容。还添加到了暂存区,想要丢弃。两步,1.用命令git reset HEAD <file>
这样就回到了场景一,2.操作场景一
场景三:已经提交了不合适的修改到版本库,想要撤销本次提交。使用 git reset HEAD^
前提是没有推送到远程仓库。
远程仓库
Git 是分布式版本控制系统,同一个 Git 仓库,可以分布到不同的机器上。
由于本地 Git 仓库 和 GitHub 仓库之间的传输是通过 SSH 加密的,所以,需要设置:
创建 SSH Key
ssh-keygen -t rsa -C youreamail@example.com
然后一路回车
然后就可以在用户的主目录里面找到
.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件。这两个就是 SSH Key 的密钥对。id_rsa
是私钥,不能泄露。id_rsa_pub
是公钥。登录 GitHub ,打开 setting 添加 SSH key
GitHub 需要 SSH Key 是因为 Github 需要识别出你推送的提交确实是你推送的。因为 GitHub 知道了你的公钥了,而你手里有私钥。
小结
关联一个远程库,使用命令 git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令 git push -u origin master
第一次推送 master 分支的所有内容。
每次本地提交后,只要有必要,就可以使用命令 git push origin master
推送最新修改版。
克隆远程仓库
git clone 地址
git 支持多种协议,包括 https
,但通过 ssh
支持的原生 git
协议速度最快。
作者:sydMobile
链接:https://www.jianshu.com/p/084d679c2167