## 安装git服务器

## 安装git

sudo apt-get install git

## 建立git用户

sudo adduser git

## 修改git用户

* 设置不能登录

vim /etc/passwd
找到git:x:1001:1001:,,,:/home/git:/bin/bash
修改为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

* 建立配置

sudo mkdir /home/git/.ssh
sudo touch /home/git/.ssh/authorized_keys

* 添加自己电脑(开发用的虚拟机
*
*
*
* )的rsa签名(见下面说明)
id_rsa_pub在C:\Users\Administrator\.ssh
sudo cat id_rsa.pub >> /home/git/.ssh/authorized_keys

* 修改权限

sudo chown -R git:git /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys

## 配置git服务器

* 建立服务器目录

sudo mkdir /home/git/gitcode
cd gitcode
sudo git init --bare b2b2c.git

* 修改权限

sudo chown -R git:git /home/git/gitcode

## 本地的一些操作。

* 生成rsa签名(结合上面的导入到authorized_keys)中(位于 ~/.ssh/id_rsa.pub)

//ssh-keygen -t rsa

* clone项目

git clone git@172.168.4.192:gitcode/b2b2c.git
git clone git@202.104.122.154:gitcode/b2b2c.git
ssh://git@447167.cicp.net:43352/~/gitcode/b2b2c.git
ssh://git@202.104.122.154/~/gitcode/b2b2c.git

## git 的一些基本操作

git add {{file || *}}

git rm {{file || * }}

git commit -m "{{commit message}}"

git pull origin/master

git push origin/master

# GIT 入门(不涉及分支功能)

## 第一步安装

> windows

####使用gitbash

百度搜索gitbash 并且安装。使用和linux 完全一致

####使用小乌龟git 或者github客户端

百度搜索即可安装

> linux

sudo apt-get install git

## 第二部分配置

> gitbash 和 linux 一样

git config --global user.name {{you name}}
git config --global user.email {{you email}}

> 小乌龟git

目前不清楚怎么配置

##第三部分配置远程仓库

#### 生成ssh key

> gitbash

ssh-keygen -t rsa -C "yangyao@ttyun.com(yangyao)"

> 小乌龟git 步骤比较复杂

先使用gitbash生成ssh key
然后使用PuTTY Key Generator 生成小乌龟专用的 putty key
参考文章http://www.7down.com/article/86528.html

### 将生成的公钥交给运维

## 第四部分git的基本操作

> clone代码

git clone git@172.168.6.15:code.api.ttyun.com

> 查看文件状态

git status

>添加单个文件到暂存区

git add {{filename}}

> 添加多个文件,使用空格隔开

git add {{file1}} {{file2}}

> 添加目录下面的所有文件

git add custom/*

> 从git仓库中删除文件 (目录也是和添加一样的方式)

git rm {{filename}}

> 将代码commit到本地

git commit -m "a simple message"

> 拉取远程代码

git pull origin master

> 推送代码到远程

git push origin master

## 高级功能

>查看提交日志

git log

>查看某个文件的更新记录(恢复文件很有效)

git log -p {{filename}}

> 撤销add的修改

git checkout {{filename}}

> 撤销本地commit的修改

git log // 查询commit id
git reset {{commit id}}

> 只撤销commit中的一个文件

git log -p {{filename}} //查询commit id
git reset {{commit id}} {{filename}}

> 不小心删除了未加入暂存区的文件或者目录

git checkout {{filename}}

## Q & A

(1)GIT pull 不到代码

执行git status 看本地是否有未解决的冲突

(2)pull的时候pull到了很多代码,并且打开了一个 vim窗口

直接 :wq 退出

(3)pull代码出现冲突

敲命令 git mergetool打开vim窗口进行合并

(4)提示冲突 但是 gitmergetool提示没有可以合并的冲突

说明有没有提交的文件和git有冲突
先commit冲突的文件,然后再pull 最后进行冲突的修改

(5)修改完冲突之后,git status 有很多文件怎么办?

直接执行 git commit 不带任何参数

(6).gitignore文件的作用是什么。

.gitignore文件可以把某些目录或者文件排除在git仓库之外,一个项目最好只维护一个.gitignore文件。
如果有人修改这个文件,必须把发送文件给每个开发者。

(7)如果想把某个目录加到git仓库,但是里面的文件不放在仓库管理怎么办?

在该目录下添加一个.gitkeep的文件

## git团队开发中需要注意的一些问题。

1. 不要擅自解决冲突,遇到冲突一定要找到当事人。
2. 修改了.gitinore文件 需要发送给每一个人
3. 在push前一定要先pull一下,pull成功了再push
4. 除非是合并提交,非自己修改的文件不要提交到仓库
5. 不要用删除的方式来解决冲突.

最新文章

  1. python3 下的文件输入输出特性以及如何覆盖文件内容和接下去输入
  2. python基础之文件操作
  3. 解剖SQLSERVER 第十三篇 Integers在行压缩和页压缩里的存储格式揭秘(译)
  4. 2016年12月21日 星期三 --出埃及记 Exodus 21:16
  5. by which, in which, from which 语法区别
  6. JMeter 连接数据库报错No suitable driver found for jdbc:xxxxxxxxx
  7. 几张图带你轻轻松松了解小程序和APP的区别
  8. jenkins针对不同的项目组对用户进行权限分配
  9. UDF函数 解码url
  10. 改造kindeditor支持asp.net core mvc上传文件
  11. A - 不要62
  12. JavaScript onclick传递对象参数(easyui传递一行数据时)错误:uncaught SyntaxError: Unexpected identifier
  13. zabbix3.4.7配置邮件告警详细步骤
  14. mybatis源码-解析配置文件(一)之XML的DOM解析方式
  15. Spring整合JDBC以及AOP管理事务
  16. ADO连接数据库【msado15.dll】
  17. scikit-learn 0.18中的cross_validation模块被移除
  18. 扩大VirtualBox虚拟机磁盘的方法
  19. CentOS 7 Docker
  20. MySQL外键的设置及作用

热门文章

  1. hackerrank Project Euler #210: Obtuse Angled Triangles
  2. TPO-12 C2 A problem of the TA's payroll
  3. 【hidden】微信小程序hidden属性使用示例
  4. 数据库Mysql的学习(三)-各种约束
  5. yarn logs -applicationId命令java版本简单实现
  6. New Year and Old Property :dfs
  7. LeetCode 109——有序链表转化二叉搜索树
  8. Eclipse 安装SVN、Maven插件
  9. Hadoop学习(一):完全分布式集群环境搭建
  10. java多线程三之线程协作与通信实例