git 操作

1 覆盖情况

 

两个人分别提交之后会覆盖另一个人

 2 版本控制的功能

这个地方还要细细看看git 与 svn的区别

 

版本控制是一种思想      具体的实现有 git  svn

git(分布式  本地完整版本控制)   本地有完整的版本历史

svn (集中式)  服务器一旦出现问题  (单点故障)   

3 git  github历史

4 git优势

 

1 本地有完整的历史

2 每一次提交的操作进行hash的计算

5 git结构

 

 

6 git 和代码托管中心

帮我们维护远程库

7 本地库和远程库交互方式

团队内

 

团队外

本地git 与远程github连接

一、注册账户以及创建仓库

要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。步骤如下:

1、打开https://github.com 直接在首页上注册

2、点按钮注册成功之后,在页面上方用户菜单上选择 “+”->New repository 创建一个新的仓库

3、为仓库取一个名字,点击创建仓库按钮 你将成功创建一个仓库

二、安装git客户端

github是服务端,要想在自己电脑上使用git我们还需要一个git客户端,

windows用户请下载 http://msysgit.github.com/

mac用户请下载 http://code.google.com/p/tortoisegit/

一路next,安装成功后, 回到C盘,或任何文件夹下,点鼠标右键会多出一些菜单

如Git Bash here、Git Gui , 说明安装成功。

 

三、配置Git

我们先在电脑硬盘里找一块地方存放本地仓库,比如我们把本地仓库建立在C:java\git文件夹下

进入git文件夹 鼠标右键操作如下步骤:

1)右键Git Bash进入git命令行,截图效果如下:

为了保险起见,我们先执行git init命令

$ git init

为了把本地的仓库传到github,还需要配置ssh key。

2)在本地创建ssh key

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

后面的your_email@youremail.com改为你的邮箱。我的邮箱是18370876897@163.com:

直接点回车,说明会在默认文件id_rsa上生成ssh key。 

然后系统要求输入密码,直接按回车表示不设密码

重复密码时也是直接回车,之后提示你shh key已经生成成功。

然后我们进入提示的地址下查看ssh key文件。 我的电脑的地址是C:\Users\sihai\.ssh ,其中sihai是我的电脑的名称

 

打开id_rsa.pub,复制里面的key。里面的key是一对看不懂的字符数字组合,不用管它,直接复制。

回到github网站,进入Account Settings,左边选择SSH Keys,Add SSH Key,

 

 

title随便填,粘贴key。

3)验证是否成功,在git bash下输入

 

$ ssh -T git@github.com

回车就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

4)接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们

 

$ git config --global user.name "your name"

$ git config --global user.email "your_email@youremail.com"

 

5)进入要上传的仓库,右键git bash,添加远程地址

 

$ git remote add origin git@github.com:yourName/yourRepo.git

后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。

 

与github上的对应

 

好了,到现在已经将本地的git和GitHub连接起来了。

8 设置签名

项目级别

 

系统用户级别

9 查看状态

未追踪的

已经提交到暂存区了

从暂存区删除了

10 日志


Head是当前的指针

 

每次只显示一行

11 前进或者后退历史版本

 

git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,

git log则不能察看已经删除了的commit记录,而且跟进结果可以回退道某一个修改:

Git reset –hard 9a9ebe0

回退到哪个版本

其它的后退操作

hard mixed soft对比

Soft

mixed

hard

12 永久删除文件找回

 

git reset HEAD 是将咱暂存区和HEAD的提交保持一致

git reset --hard HEAD 是将工作区、暂存取和HEAD保持一致

13 比较文件

显示行号

14分支

 

Git 分支比svn效率高

 

查看有多少分支

创建分支

现在,你已经决定要解决你的公司使用的问题追踪系统中的 #53 问题。 想要新建一个分支并同时切换到那个分支上,你可以运行一个带有 -b 参数的 git checkout 命令:

$ git checkout -b iss53

Switched to a new branch "iss53"

它是下面两条命令的简写:

$ git branch iss53

$ git checkout iss53

然后在新的分支上进行操作

合并到主分支

1 切换到主分支

2 Merge到主分支了

合并冲突解决

Head 当前分支的内容

 

====到master为另一个的内容

 

15 Git原理

哈希

数据管理机制

SVN

Git

Git 文件管理机制细节

 

最右边就是提交时的各个文件,中间就是文件树,左边就是提交对象

Git如何管理分支

 

 

16 github

 

推送的时候设定推送地址

拉取操作

 

协同开发解决冲突

以上状态就是有冲突了

 

跨团队协同开发

1 Fork

2发起pull request

 进行审批  

看看修改过哪些

4合并

 

5 然后拉取到本地

ssh免密登陆

17 编译器与git进行绑定

Eclipse

右击项目  team  commit

 

Eclipse中解决冲突

和beyongCompare差不多

对比

拉取分支

合并

 

 

18  忽略文件

 

Gitignor文件需要设置的东西

#.gitignore常用格式
# *.a 忽略所有 .a 结尾的文件
# !lib.a 但 lib.a 除外
# /TODO 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
# build/ 忽略 build/ 目录下的所有文件
# doc/*.txt 会忽略 doctes.txt 但不包括 docrver/arch.txt

 

配置文件

19 工作流

 

 

分支种类

20 gitlab搭建过程

centos 

上传gitlab

1新建一个脚本文件

2安装命令放到脚本里面

改权限可以执行的

执行

重启

看看防火墙

Ubuntu

1.安装依赖包

sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates

2. 邮件配置

选择Internet那一项,不带Smarthost
sudo apt-get install -y postfix

3. 添加镜像

免费版
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
企业版
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

4. 安装

sudo apt-get update
sudo apt-get install gitlab-ce 或者 sudo apt-get install gitlab-ee

5. 配置访问路径

sudo -e /etc/gitlab/gitlab.rb
修改下图中的路径

6. 更新配置

sudo gitlab-ctl reconfigure

7. 重新启动gitlab

sudo gitlab-ctl restart

结果如下图

6. 更新配置

sudo gitlab-ctl reconfigure

7. 重新启动gitlab

sudo gitlab-ctl restart

结果如下图

8. 打开 sshd 和 postfix 服务

service sshd start
service postfix start

9. 查看gitlab服务器状态

sudo gitlab-ctl status

10. 结果

在浏览器中访问http://127.0.0.1

21更改git  url

查看更改后的