搭建自己的GIT环境

先提供一些GIT的学习材料哈:
1、图文并茂的简述GIT常用命令(适合初学者):http://rogerdudler.github.io/git-guide/index.zh.html
2、GIT的学习方法:http://blog.jobbole.com/50603/
3、step bt step详细教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

好啦,开始正文吧,总结了一些GIT关键步骤:
  • 本地GIT环境
一、安装GIT工具
在Ubuntu环境下,可以通过命令:sudo apt-get install git安装GIT
在windows环境下,可以直接下载github官方工具:https://help.github.com/articles/set-up-git

二、配置GIT个人信息
Username:git config --global user.name "Your Name Here"
Email:git config --global user.email "your_email@example.com"

三、常用命令:
初始化本地目录为GIT仓库:git init;
添加单个文件:git add "filename" 或批量添加文件:git add *
提交:git commit -m “commit msg”;
查看GIT仓库内文件的修改状态:git status;
比较文件的修改内容:git diff filename;
查看提交日志:git log;也可以自定义输出格式:git log --pretty=oneline   列出版本 号与提交的备注
版本回退:git reset --hard 版本号;
记录你的每一条命令:git reflog;
丢弃工作区的所有修改:git checkout -- 文件
删除文件:git rm 文件

  • 远程GIT环境
一、首先在https://github.com/注册个人GIT远程账号;
二、配置GIT提交密钥:http://blog.csdn.net/benweizhu/article/details/8492968
三、常用命令:
关联远程库:git remote add origin 资源库地址(git@github.com:michaelliao/gitskills.git);
查看远程库的详细信息:git remote -v
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
也可以直接从远程库克隆一个版本:git clone 资源库地址(git@github.com:michaelliao/gitskills.git)
分支:
查看当前分支,当前分支前面会标一个*号:git branch;
创建分支:git checkout -b dev;(-b参数表示创建并切换到dev分支)
切换到新建分支:git branch dev;
合并分支:git checkout master;--> git merge dev;
删除分支:git -d branch dev;
通常,合并分支时,如果可能,Git会用“Fast forward”模式,但这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用“Fast forward”模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

冲突:
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们可以修改后保存在提交。

修复bug模式
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

开发新feature模式:
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D name强行删除。

标签管理:
Git的标签虽然是版本库的快照,但其实它就是指向某个commit的指针(跟分支很像对不对?但是分支可以移动,标签不能移动),所以,创建和删除标签都是瞬间完成的。
命令git tag name用于新建一个标签,默认为HEAD,也可以指定一个commit id;
-a tagname -m "blablabla..."可以指定标签信息;
-s tagname -m "blablabla..."可以用PGP签名标签;
命令git tag可以查看所有标签;
命令git push origin tagname可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d tagname可以删除一个本地标签;
命令git push origin :refs/tags/tagname可以删除一个远程标签。
忽略特殊文件:.gitignore文件,可以参考:https://github.com/github/gitignore
注意:使用Windows的童鞋注意了,如果你在资源管理器里新建一个.gitignore文件,它会非常弱智地提示你必须输入文件名,但是在文本编辑器里“保存”或者“另存为”就可以把文件保存为.gitignore了

  • 搭建GIT服务器

假设你已经有sudo权限的用户账号,下面,正式开始安装。

第一步,安装git:

$ sudo apt-get install git

第二步,创建一个git用户,用来运行git服务:

$ sudo adduser git

第三步,创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

第四步,初始化Git仓库:

先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:

$ sudo git init --bare sample.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

$ sudo chown -R git:git sample.git

第五步,禁用shell登录:

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改为:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

第六步,克隆远程仓库:

现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:

$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

剩下的推送就简单了。




参与github开源项目:
在GitHub上,可以任意Fork开源仓库;
自己拥有Fork后的仓库的读写权限;
可以推送pull request给官方仓库来贡献代码。





专业名词;
工作区(Working Directory):就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:
版本库(Repository):工作区有一个隐藏目录“.git”,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
使用“git add”把文件添加进去,实际上就是把文件修改添加到暂存区;
使用“git commit”提交更改,实际上就是把暂存区的所有内容提交到当前分支。
也可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。



坚持:走着走着,花就开了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值