#给小白的git说明书
1. 建立代码仓
1.1本地新建同步远程
git 其实就是一个远程文件管理工具,使用仓库概念来进行不同功能代码的分割
建立一个代码仓库是使用git的先决条件。
1.2 创建一个代码仓:
1 | $ mkdir learngit |
1.3 通过git init 来把这个目录变成git可以管理的仓库
1 | $ git init |
你的git仓库就建好了,这是目录下多了.git目录,用来跟踪管理版本库的,不要去试图改动,你可以使用ls -ah来看他
1.4 以上步骤建立了一个本地的代码仓,接下来如何关联远程的代码仓从而把代码推上去呢?
1.4.1 首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库
1.4.2 在Repository name填入代码仓名称
,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库,目前,在GitHub上的这个learngit
仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
1.4.3 现在,我们根据GitHub的提示,在本地的xxxx
仓库下运行命令:
1 | $ git remote add origin git@github.com:LittleBeeMark/ssl_projects.git |
如此一来我们本地的仓库就和远程的对应仓库关联上了,这个origin参数实际就是远程地址的别名,之后执行git push -u origin master 其实就是把目前的分支推送到刚刚建立的远程仓库的master分支,-u 在执行第一次命令时使用可以让本地和远程和指定仓库关联。
1.5 SSH 警告!当你第一次使用Git的clone
或者push
命令连接GitHub时,会得到一个警告:
1 | The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. |
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes
回车即可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
1 | Warning: Permanently added 'github.com' (RSA) to the list of known hosts. |
这个警告只会出现一次,后面的操作就不会有任何警告了。
如果你实在担心有人冒充GitHub服务器,输入yes
前可以对照GitHub的RSA Key的指纹信息是否与SSH连接给出的一致。
1.6 生成SSHKEY
1 | //重新生成key |
会在本地C:\Users(windows外的系统是 ~ 家目录下)你的用户名.ssh生成文件夹,里面有id_rsa和id_rsa.pub两个文件
然后复制id_rsa.pub文件里面的内容,到https://github.com/settings/keys新建一个
1.7 关联远程的另一种方式—克隆
1.7.1 远程建立一个分支
1.7.2 本地使用git地址来进行克隆:
1 | $ git clone git@github.com:LittleBeeMark/ssl_projects.git |
1.8 接下来就是给你的仓库添加东西了如添加一个readme.md
1.8.1 第一步 使用git add 把文件添加到仓库
这个添加其实是把工作区的文件修改添加到了git 的暂存区
用git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别
1 | $ git add readme.md |
1.9 第二步 使用git commit告诉git 把文件提交到仓库
1 | $ git commit -m "wrote a readme file" |
1.10 第三步把代码推到对应分,远程的origin
1 | $ git push origin (分支名) |
二、分支操作
2.1 使用git log 来进行代码的日志打印:git log
命令显示从最近到最远的提交日志,我们可以看到每次提交。如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline
参数:
需要友情提示的是,你看到的一大串类似1094adb...
的是commit id
(版本号)
2.2 版本回退:
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD
表示当前版本,也就是最新的提交1094adb...
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
现在,我们要把当前版本append GPL
回退到上一个版本add distributed
,就可以使用git reset
命令:
1 | $ git reset --hard HEAD^ |
2.3 回退后再回到上个版本:
找到那个版本的commit id
是1094adb...
,于是就可以指定回到未来的某个版本:
1 | $ git reset --hard 1094a |
2.4 查找已经被回退掉的版本号:
1 | $ git reflog |
这个命令用来记录你的每个命令,命令前有你在执行这个命令的分支