git学习初步

     之前实习的时候已经用过一段时间git了,但最初安装的时候都是老大帮着弄的,也就是说我其实什么都没有搞明白就直接可以了,然后就是用客户端pull,push代码。

     最近结束了实习,想要系统的学习一下,就先尝试着在自己电脑上安装了git,并创建了本地仓库和远程仓库,练习了一下git的基本操作,中间也遇到了一些问题,在这里总结一下,都是一些最初级的内容,很适合和我一样之前一点都不了解的同学,可以参考一下。

     首先,要在本地安装git,可以在这里直接下载.然后一步步安装即可。

     接下来就是我苦苦的探索之路了。。。。

     首先,我需要先创建一个远程仓库,在github上,新创建了一个repository

     那么,如何将远程仓库克隆到我们本地呢?

     在clone之前先来做一些准备工作,为了能够识别出每次push或者pull代码的开发者,首先需要设置我们的username和email,运行Git Bash,输入

$ git config --global user.name "your name"
$ git config --global user.email "youremail@XXX.com

这样就成功配置了我们的用户名和邮箱地址。

然后我们在本地创建一个文件夹,用于clone远程仓库,假设我希望在d盘下fe文件夹下,则在Git Bash中输入以下代码:

$ cd d:/
$ mkdir fe
$ git init

这段代码的意思就是首先进入d盘,然后创建fe目录,最后git初始化,git初始化的操作会在fe目录下创建一个.git的隐藏文件夹。

接下来就可以clone远程的代码了。

$ git clone https://github.com/bupthly/hly.git

clone后跟的是仓库的URL,这样就把远程仓库的代码clone到我们本地了,可以到文件夹自己查看,也可以执行

$ ls

来查看当前目录下的文件。

以上步骤就是最最最基本的远程仓库和本地仓库的创建了,当然这些远远不够,因为在我后面想要push,pull代码的时候就发现还是有好多问题。。。。o(╯□╰)o

 

接下来一步步尝试:

首先在我们本地fe目录下新创建一个文件,假设命名为readme.txt,这时在git bash中输入git status,表明新创建了一个文件,在提交时,可以通过执行

 

$ git add readme.txt

 

 来将文件暂存,然后commit一下

 

$ git commit -m "add readme.txt"

 

 

这样就将更改提交到了我们本地的git仓库中,下面就要通过push来将代码提交到远程, 网上的好多教程上都是这样写的

 

$ git push origin master

 

 

 但是我们最初的时候是还没有设置origin的,所以这个命令会出错,我们可以通过以下代码来查看我们的远程主机

 

$ git remote -v               ------------------(1

 

 

 在最初的时候,由于我没有添加主机名,所以执行上述代码的时候得到的结果中什么都没有, 因此我需要将我的远程仓库url添加进来,

$ git remote add origin yourURL

 

 

 这样就成功添加进来了,可以重新通过(1)来查看一下,如果正确的话应该会有如下显示:

此时我们就可以push代码了,但是等等。。。。又发现新的问题了有木有啊,,每次push代码都要输入一遍用户名和密码!!!真的是好麻烦。。。。

我在网上查阅了一些资料,有一个解决方案还是很不错的,,如下:

由于我们现在push代码的时候是通过https协议,因此每次都要输一遍用户名和密码,so。。我们可以转换为通过ssh来push代码,,,什么是ssh呢?不是计算机科班出身的果然困难重重啊,,,好多东西都不懂。。o(╯□╰)o,还是先说一下解决方案吧,,因为我还没有很理解其中的原理,,待我再细细探究。。。

$ git remote rm origin
$ git remote add origin git@github.com:bupthly/hly.git

 

 

 其中bupthly是我的github账户名,hly是我的远程仓库名,改为自己对应的即可。

通过ssh的方式需要设置公钥,git生成公钥的方式很简单,直接输入

$ ssh-keygen -t rsa -C "youremail@XXX.com"

 

 

 一直回车确定就好,这时我们的公钥已经生成好了,即id_rsa.pub文件,将该文件中的内容添加到github中的ssh key中即可。

这样我们就可以免密码push代码了。。

 

 

以上的内容写的还是很乱,都是根据我实践中遇到的问题和解决问题过程来写的,比较基础,算是记录一下这次学习的过程,也希望能够对跟我一样完全不清楚的同学一点帮助。

后续我会整理一下git常用的命令~

 

 

    

posted @ 2015-06-01 16:05  hualuyao  阅读(173)  评论(0编辑  收藏  举报