从昨天开始就在看git的使用,因为在Windows下很多命令行操作都比较坑爹,但是今天再走了无数弯路之后终于完成了git本地仓库和远程仓库的关联,记录如下,
首先感谢廖大神的博客的http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000,
同时感谢这位朋友http://blog.baibaobing.com/other/99.html的记录帮我解决了问题。
正文开始,
我会结合一个实例来介绍的:
当然使用git之前先要下载git客户端链接在这里:http://git-scm.com/download/
这里不用github for windows是因为我觉得比较偏门,不是太普适,我要是在Linux下就没办法了。
先描述github和git:
1.git是版本一个控制系统,blabla介绍什么的最不喜欢了.....
就是说,我们使用git管理我们的代码,那么我们就需要把代码加入到git仓库中保存,git有一个本地仓库的概念,就是可以在本地记录变更,以便适应不能联网的环境。
2.远程仓库是远程主机上类似于现在的网盘一样的东西,但是具有git的功能,可以在主机上保存我们的代码库。这里说的github就是远程仓库。
首先,我们使用远程仓库需要现在github注册账号,怎么注册不用多说了。
然后我们需要在本地建立本地仓库,就是在你需要建立仓库的目录下执行这样的命令:
git init
示例:
在用户目录下新建了一个learngit文件夹,在此文件夹下使用上述命令:
打开git bash
此时初始化本地仓库完成。
我们接下来要在里面添加文件,在此之前我们需要设置好全局用户,方便git知道你是谁,以便记录你对仓库的每一次更改。
主要是设置用户名和邮箱,使用如下命令
git config --global user.name "yourname"
git config --global user.email "your email addr"
这里的名字和邮箱不是必须和github上注册用的一样也行。
我设置是这样:
下面添加一个文件到这个文件夹中(应该叫本地仓库)
注意,此时被添加到仓库中的文件并没有在仓库中,因为它没有在仓库的记录中。
使用如下命令将文件添加到仓库(记录)中:
git add filename
我这里加入了一个README.md文件在learngit问价夹下:
这样就建立好了本地仓库。
下面建立远程仓库,因为要上传就需要将本地仓库和远程仓库关联起来;
首先在github上新建仓库:
注意,此处的仓库名不一定需要和本地仓库名相同。
点击创建就创建好了一个空的远程仓库。
这里的大批提示就是我们接下来的大部分操作了。注意记住上面的ssh链接,最好不用http;
先回头在git bash中进行这样一项操作:
因为ssh链接主机需要密码验证,我们需要在本机建立密钥并注册到远程主机上,下面是建立ssh密钥过程:
使用命令检查是否本地用户主目录有名为.ssh的密钥保存文件夹和密钥文件。
ls -al ~/.ssh
如果没有会提示你的,一般你没用过git bash或ssh建立过密钥的都没有此文件夹,或是文件夹没有文件。
之后建立密钥,使用如下命令:
ssh-keygen -t rsa -C "your email addr"
注意邮箱地址也是不限制必须和哪个相同。
我操作如下:
注意在输入文件名那里直接回车就可以了,默认密钥文件名是id_rsa,公钥文件就是名是id_rsa.pub
然后输入密码并确认就可以了,成功会返回指纹识别吗和随机字符画,不用记。
然后在用户主目录.ssh文件夹下找到后缀为.pub的公钥文件,用文本编辑器打开并将其所有内容复制下来。
复制完之后回到github上,
在主界面右上角找到设置那个选项:
标志是齿轮;
打开后选择SSH key
点击Add SSH key,在出现的UI中添加密钥名和密钥内容:
之后点击添加即可。注意添加成功后会邮件通知你(你是指github注册邮箱持有人)。
然后回到git bash来,输入如下命令检测是否能够ssh连接github,
ssh -T git@github.com
可能会出现警告,不要管他,输入的密码是你建立密钥时候的密码。
出现上图说明能成功连接到github。
之后我们按照如下命令将本地仓库递交到远程仓库:
上传之前要对修改做一次总结,写好“日志”
git commit -m ".................."
省略号中添加文字描述。
将本地仓库和远程仓库建立连接:
git remote add origin git@github.com:wylhyz/learngit.git
origin是远程仓库在本地别名,你可以自由取,git链接是在建立远程仓库时要你记下的ssh连接。此句就是在本地建立远程仓库别名并链接到远程仓库。
然后直接使用如下命令就可以将更改上传了:
git push -u origin master
需要密码验证的时候输入密钥密码就好。(当然有不用输入的方法)
此时在github上查看仓库就已经上传完成了:
连我写的描述也有。
暂时就会这么多,其他东西知道了再补充。
以上