作为一个程序猿,你一定听说过世界最大的同性交友网站:GitHub,但对于其怎么使用,可能会有一点陌生,今天老夫就把自己平时积累的一点经验记录一下,同时分享给大家,需要说明的是,老夫对于很多操作也不甚了了,希望高手能多多留言交流。要想在世界上最大的同性交友网站上畅游,第一步当然是注册啦,但怎么注册老夫就不说了,和其他的注册没有什么差别,下面我们就从Git的客户端下载、安装和配置说起。

一、Git客户端的下载与安装

Windows安装msysgit 选择Git-1.x.x.x-xxxx.exe

Linux安装sudo apt-get install git

安装完成之后,桌面上会有一个“Git Bash”的快捷方式,双击打开,我们一下的操作,将主要在这里完成

二、Git客户端的配置

  1. 配置用户名
git config –global user.name username  
  1. 配置邮箱
git config –global user.email email  
  1. SSH Key配置
    我们可以通过两种协议在这个世界上最大的同性交友网站里畅游,但我们一般都是通过SSH协议,所以我们下面要配置SSH Key,在配置SSH Key之前,我们可以先敲一下下面这个命令:
ssh -T git@github.com  

这个命令一方面可以测试我们与这个世界上最大的同性交友网站的通信是否顺畅,另外如果显示出了你在Githu上的用户名,则表示已经配置过了,不需要再生成SSH Key了;

如果没有配置过,那好下面我们就要生成SSH Key了,生成SSH Key的命令:

ssh-keygen  

使用该命令,一路Enter下去,就会在C:UsersAdministrator.ssh目录下,生成一对SSH key,生成SSH key之后就需要我们将公钥添加到Github上了,方法:

打开C:UsersAdministrator.ssh目录,使用Notepad++等现代文本编辑器(记事本就算了,而且还可能遇到问题)打开id_rsa.pub文件,将里面的内容全部拷贝下来,然后打开Github,打开个人设置页面,选中“SSH Key”选项,点击“Add SSH Key”按钮,然后在新新出现的表单中,填入标题,再将刚刚复制下来的内容,粘贴到“Key”栏,然后点击“Add Key”按钮,完成添加,此时我们可以再次敲一下:

ssh -T git@github.com  

测试是否配置成功,如果成功了,那么我们就真的可以再这个世界上最大的同性交友网站上畅游了

三、把本地项目放到GitHub上

既然是把本地项目放到GitHub上,那么我们先在Git上建一个仓库,例如:Demo,然后我们在本地的项目,也就是Demo下执行以下命令:

git init  
git add README.md  
git commit -m "first commit"  
git remote add origin git@github.com:bridgeli/Demo.git  
git push -u origin master  

如果是我们一个人在玩的话,当我们在做出一些修改之后,以后的操作就可以直接:

git add README.md  
git commit -m "first commit"  
git push -u origin master  

其中 add 后面跟的是文件名,如果提交所有也可以使用命令:

git add .  

当然了我们很多时候是有一些文件是不想提交的,那么我们就不能用这个命令了,如果每次都写文件名的话,又非常繁琐,那么有没有解决这个问题的办法呢?肯定是有的,我们可以配置一个.gitignore,参考如下:

target/  
*.idea  
*.DS_Store  
*.iml  
logs/  
bin/  
WebRoot/WEB-INF/classes  
.project  
.mymetadata  
.myumlddata  
*.iml  
.settings  
.DS_STORE  
.myumldata  
.classpath  
WebRoot/.DS_Store  
WebRoot/xiaoma_static/node_modules  
WebRoot/xiaoma_static/css-report  
WebRoot/xiaoma_static/npm-debug.log  
/build  

四、从服务器上获取已经建立的项目

这个比较简单,找到该项目,直接:

git clone git@github.com:bridgeli/Demo.git  

然后在本地就会有一个名为Demo的项目,然后我们就可以按照上面的操作进行操作了

上面讲的都是单兵作战,如果是多人开发协同开发,那么上面这些命令肯定是不够的,那么就需要我们在每次上推代码之前,先敲一下:

git pull  

也就是拉取远程修改在本地,如果有冲突,那么先解决冲突,最后在push到远程。

五、锦上添花

  1. 其实有了以上命令,在GitHub上你就可以玩了,但Git还有一个锦上添花的操作,首先Git鼓励大量使用分支:

查看分支:

git branch  

创建分支:

git branch name  

切换分支:

git checkout name  

创建+切换分支:

git checkout -b name  

合并某分支到当前分支:

git merge name  

删除分支:

git branch -d name  

查看远程分支:

git branch -r  

在日常开发中,我们应该在本地建一个bug分支或者dev分支开发,等这个功能开发完或者bug修复了,然后合并到本地的主分支上,然后在上推到远程,因为这样我们就可以保证本地的主分支一直是可以用的,也就是没有问题的,这样就不会出现当我们在秀一个bug时,另一个紧急bug需要修复,而没有一个完整的项目

  1. 查看版本库状态–务必掌握,经常使用
git status  
  1. 某些时候我们在修改了某些文件,但是我们又想放弃这些修改,那怎么办呢?
git checkout &#8212; <file>&#8230;  
  1. 使用–soft参数调用重置命令,也就是说把前两次的commit和本次的commit,合并成一次commit(否则前两次的提交加上你本次的提交,会出现三次提交记录),回到最近2次提交之前:
git reset &#8211;soft HEAD^^  
  1. 指令别名
git config &#8211;global alias.ci commit  

原生的Git命令有的好长,给指令起个别名,简化一下指令,简化后的指令如下:

git ci  

打tag:

git tag -a v1.0.0 -m ‘1.0.0 time:15-03-22 21:13;&#8217;  
git push &#8211;tags  

六、冲突处理

在多人协同开发中,出现冲突时很正常很正常的事(有同事说,怎么做怎么做可以避免冲突,老夫窃以为不可能,别人改了这个地方你也改了,那么这个地方肯定会冲突,不会因为你怎么做而改变,除非你不改这个地方),那么冲突出现了,我们怎么做呢?要想知道怎么做,需要我们先明白出现冲突的情形?

  1. 出现冲突的情形:

我们在本地dev开发分支上面开发完成之后,肯定要提交,在真正push到远程之前,肯定需要我们先把远程的代码pull下来,一般推荐在本地master分支pull,本地master pull代码之后,如果之前有人提交代码,那么你目前本地的master和你本地的dev分支代码肯定不一样,此时你需要做的操作就是在dev分支上:

git rebase master  

即把本地master分支的代码合并到dev分支上,用上面提到的merge命令也行,那么此时一定会出现冲突,如果出现冲突,合并将会停留在一个合并的中间状态上,即你此时既不会在master分支上,也不会再dev分支上

  1. 解决冲突

出现冲突之后,我们第一步要做的肯定就是:解决冲突,也就是看看那些冲突的地方,哪些是你要删除的,哪些是你要保留的,处理完之后,你要告诉Git你已经把冲突处理完了

git add .  
git rebase &#8211;continue  

add 就是说,冲突已处理完,continue就是继续rebase,也就是继续合并代码,那么此时一定会合并过来,此时就会发现你在你希望的dev分支上了,然后再提交代码即可。
注:如果之前你有提交,那么就可以把这两次要提交的合并成一次提交,上面说的 reset 命令就有用场了

参考资料:http://www.diguage.com/archives/42.html