CerntOS7下搭建git服务器

(1).安装git

  yum安装git,需要ssh的支持。某些版本需要安装git-core,那才是服务器。

[root@youxi1 ~]# yum -y install git

  创建git用户

[root@youxi1 ~]# useradd -m git  //-m表示创建用户主目录
[root@youxi1 ~]# echo "git:123456" | chpasswd  //修改git的密码

  创建一个空的项目仓库

[root@youxi1 ~]# su git
[git@youxi1 root]$ cd
[git@youxi1 ~]$ mkdir project.git
[git@youxi1 ~]$ cd project.git/
[git@youxi1 project,git]$ git init --bare  //初始化
初始化空的 Git 版本库于 /home/git/project.git/

(2).git的常见使用方法

git init here  创建本地仓库(repository),将会在文件夹下创建一个.git文件夹,.git文件夹里存储了所有的版本信息、标记等内容。
git remote add origin git@github.com:winter1991/helloworld.git  把本地仓库和远程仓库关联起来。如果不执行这个命令的话,每次push的时候都需要指定远程服务器的地址。
git add  从本地仓库增删,结果将会保存到本机的缓存里面。
git commit -m "[注释]"  提交,把本机缓存中的内容提交到本机的HEAD里面。
git push origin master  把本地的commit push到远程服务器上,origin也就是之前git remote add origin那个命令里面的 origin,origin 替代了服务器仓库地址:git push  git@github.com:winter1991/helloworld.git master
git pull origin master  从远程服务器pull新的改动
git status  查看状态
git add -A  提交全部修改
git config --global user.name "[用户名]"  配置用户名,上传本地repository到服务器上的时候,在Github上会显示这里配置的上传者信息
git config --global user.email "[邮箱地址]"  配置邮箱
git config --list  查看配置列表
git rm xxx  从本地仓库中删除指定文件
git rm -r xxx  从本地仓库中删除指定文件夹
git commit -m "[注释]"  把本机缓存中的内容提交到本机的 HEAD 里面
git push origin master  把本地的 commit push 到远程仓库中
  另外:可以在项目仓库目录下创建.gitignore文件,文件内容为指定忽略的文件、文件夹(相对路径为项目仓库目录)

(3).测试

 1)在CentOS7上测试

  安装git,克隆远程项目仓库。

[root@youxi2 ~]# yum -y install git
[root@youxi2 ~]# mkdir git
[root@youxi2 ~]# cd git/
[root@youxi2 git]# git clone git@192.168.5.101:/home/git/project.git  //克隆
正克隆到 'project'...
git@192.168.5.101's password:   //输入密码
warning: 您似乎克隆了一个空版本库。
[root@youxi2 git]# ls
project

  测试

[root@youxi2 git]# cd project/  //进入本地项目仓库目录
[root@youxi2 project]# echo "first" > 1.html  //创建测试文档
[root@youxi2 project]# git add .  //添加到缓存区
[root@youxi2 project]# git commit -m "first"  //提交到本地仓库
[master(根提交) 2f5d4db] first
 Committer: root <root@youxi2.cn>
您的姓名和邮件地址基于登录名和主机名进行了自动设置。请检查它们正确
与否。您可以通过下面的命令对其进行明确地设置以免再出现本提示信息:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

设置完毕后,您可以用下面的命令来修正本次提交所使用的用户身份:

    git commit --amend --reset-author

 1 file changed, 1 insertion(+)
 create mode 100644 1.html
//测试本地仓库是否与远程仓库关联,如果没有关联则建立关联 [root@youxi2 project]# git remote add origin git@192.168.5.101:/home/git/project.git fatal: 远程 origin 已经存在。 [root@youxi2 project]# git push origin master  //本地推送到远程服务器 git@192.168.5.101's password: Counting objects: 3, done. Writing objects: 100% (3/3), 205 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.5.101:/home/git/project.git * [new branch] master -> master

  如果修改了推送到远程服务器时附带的用户名和邮箱

[root@youxi2 project]# git config --global user.name "user1"  //修改推送时附带的用户名
[root@youxi2 project]# git config --global user.email "user1@163.com"  //修改推送时附带的邮箱
[root@youxi2 project]# echo "second" >> 1.html
[root@youxi2 project]# git add 1.html
[root@youxi2 project]# git commit -m "second"
[master 4462f19] second
 1 file changed, 1 insertion(+)
[root@youxi2 project]# echo "third" >> 1.html
[root@youxi2 project]# git add 1.html    
[root@youxi2 project]# git commit -m "third"
[master 4a6ca80] third
 1 file changed, 1 insertion(+)
[root@youxi2 project]# git push  //推送到远程服务器
warning: push.default 未设置,它的默认值将会在 Git 2.0 由 'matching'
修改为 'simple'。若要不再显示本信息并在其默认值改变后维持当前使用习惯,
进行如下设置:
  git config --global push.default matching
若要不再显示本信息并从现在开始采用新的使用习惯,设置:
  git config --global push.default simple

参见 'git help config' 并查找 'push.default' 以获取更多信息。
('simple' 模式由 Git 1.7.11 版本引入。如果您有时要使用老版本的 Git,
为保持兼容,请用 'current' 代替 'simple' 模式)

git@192.168.5.101's password: 
Counting objects: 8, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 449 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@192.168.5.101:/home/git/project.git
   2f5d4db..4a6ca80  master -> master

 2)在Windows上测试

  在安装TortoiseGit要先安装git for Windows。git for Windows下载地址https://gitforwindows.org/;TortoiseGit下载地址https://tortoisegit.org/download/

  安装完成git for Windows后,右键应该出现Git GUI Here和GIt Bash Here。此时其实就已经可以使用了,但操作比较TortoiseGit相对复杂。

   A.git for Windows的使用

    第一次运行Git GUI Here会出现如下界面,选择Clone Existing Repository(克隆已存在的仓库)。

    填写Source Location(源对象)和Target Directory(目标目录),最后点击克隆。D:git不能够存在

    出现一个认证界面(只有第一次有),输入yes,点击ok。然后会出现如下界面,需要多次输入登录密码

    成功后会生成D:git文件夹,并且转到如下界面。

    在工作前最好先选择Branch下的Checkout,校验一下。然后在D:git目录下增删改操作。修改完成后,依次点击下方的五个按钮Rescan(扫描)、Stage Changed(添加到缓存区)、Sign Off(签名)、Commit(提交到本地仓库)、Push(推送到远程服务器)。

    Git Barsh Here是面向Windows系统的命令,也可在Git GUI的Repository下的Git Bash中打开。如果对签名不满意的,就在命令行中使用命令修改。

   B.TortoiseGit的使用(可以安装中文补丁)

    右键git clone,会出现如下界面,配置URL和目录

    会出现确认界面,点yes或是,然后会出现输入密码的界面

    后期使用和SVN类似,选中修改的文件-->右键-->TortoiseGit-->Add(添加),出现如下界面

 

    点击提交会出现如下界面,编写完成后,点击提交,提交到本地仓库。

  在提交到本地仓库时,会出现如下界面,提交完成后推送按钮会亮起。

  点击推送编写推送信息,确认后输入密码即可完成推送。

(4).SVN和git的比较

SVN与Git比较的优缺点差异

原文地址:https://www.cnblogs.com/diantong/p/11143435.html