GitHub就是一个免费托管开源代码的远程仓库,个人可以把代码寄存处上面,不过会被公开。对于商业公司来说在Linux上搭建一台Git服务器作为私有仓库使用。开发人员在本地下载仓库代码,协同开发。本篇介绍服务器搭建与Git基本命令的使用。

一、服务器搭建步骤如下:

1、安装git依赖包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

2、删除已有的git

yum remove git

3、下载git源码

  切换到你的包文件存放目录下

cd /usr/src

  下载git安装包

wget https://www.kernel.org/pub/software/scm/git/git-2.8.3.tar.gz

  解压git安装包

tar -zxvf git-2.8.3.tar.gz

cd git-2.8.3

  配置git安装路径

./configure prefix=/usr/local/git/

  编译并且安装

make && make install

  查看git版本号

git --version

  git已经安装完毕

4、将git指令添加到bash中

vi /etc/profile

  在最后一行加入

export PATH=$PATH:/usr/local/git/bin

  让该配置文件立即生效

source /etc/profile 

5、设置用户名和邮箱

git config --global user.name "Your Name" 

git config --global user.email "email@example.com"

6、创建用户组和用户

groupadd git 

useradd git -g git

7、创建证书登录

用户想要登录Git仓库必须把公钥信息放到/home/git/.ssh/authorized_keys文件里,一行一个。

cd /home/git/ 

mkdir .ssh 

chmod 755 .ssh 

touch .ssh/authorized_keys 

chmod 644 .ssh/authorized_keys

如何查看本地公钥呢?开发者在本地安装完window版git后,默认存放地址在:

C:\Users\Administrator\.ssh\id_rsa.pub。如果没有要自动生成,在Git Bash中执行:

$ cd ~/.ssh

$ ssh-keygen

然后依次输入生成公钥路径和密码,确认密码,之后去路径下打开文件就能看到这种信息,粘贴到authorized_keys文件中。

8、初始化Git仓库

$ cd /home

$ mkdir learngit

$ cd learngit/

$ pwd

/home/learngit

$ git init

Initialized empty Git repository in /home/learngit/.git/

9、克隆仓库

开发人员在本地切换到你要下载代码的路径下执行,其中58.87.117.26是安装服务器的IP,/home/learngit 是仓库路径。

$ git clone git@58.87.117.26:/home/learngit

Cloning into 'learngit'...

remote: Counting objects: 3, done.

remote: Total 3 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (3/3), done.

二、Git基本命令的使用

首先设置用户名与邮箱信息,参照上述序号5。然后就可以操作添加提交移除等操作了。以下通过Git Bash 方式完成。

1. 查看项目状态

git status -s 

文件gittest是仓库原有的,summer_git1.txt和summer_git1.txt是在本地新创建的,缓存内没有前面标有??。

2. 添加到缓存

git add summer_git1.txt summer_git2.txt 

修改文件summer_git1.txt,再查看状态,"AM" 状态的意思是,这个文件在我们将它添加到缓存之后又有改动。改动后我们再执行 git add 命令将其添加到缓存中:

3. 提交文件

-m 选项以在命令行中提供提交注释

git commit -m '第一次版本提交'

查看状态:

发现git1文件被修改状态,原因是在修改之后文件没有放到缓存区,所以提交时候没有它。可以先git add再commit文件,或者跳过添加直接提交:

git commit -am '修改git1文件' 

再查看状态,没有需要提交的文件了:

4. 推送分支

从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin

把本地分支上的所有提交推送到远程库分支上。

4.1 查看本地分支

git push origin master

4.2 新建分支dev

git branch dev

4.3 切换到分支dev

$ git checkout dev
Switched to branch 'dev'

4.4 删除分支

git branch -d testing

4.5 推送分支

将本地dev分支推送到远程的dev分支上。

git push origin dev

报错一,项目中有和历史不符的东西

$ git push origin dev
To 58.87.117.26:/home/learngit
! [rejected] dev -> dev (fetch first)
error: failed to push some refs to 'git@58.87.117.26:/home/learngit'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

根据提示尝试逐条执行解决方式:

git fetch origin dev

git pull origin dev

终极解决方式:

git pull origin dev –allow-unrelated-histories 

git push -u origin dev -f

报错二,分支目前被检出状态,问问其他小伙伴谁在占用吧!

5. 清空缓存

git reset HEAD

6. 删除(通常在本地删除文件,再提交)

# 删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
git rm -f <file> # 把文件从暂存区域移除,但仍然希望保留在当前工作目录中,仅是从跟踪清单中删除,使用--cached 选项即可
git rm --cached <file>

7. 查看日志

以简洁的方式查看20180908之后的操作日志:

$ git log --oneline --after={2018-09-08}
7408abe (HEAD -> dev) 删除文件
15012f9 (origin/dev) 提交文件3
afe0b1c (master) 修改git1文件
fca4df6 第一次版本提交

【Git】从服务器搭建到提交分支使用——初学者轻松上手篇的更多相关文章

  1. 【SVN】Linux下svn搭建配置全过程——初学者轻松上手篇

    版本控制主要用到的是git和svn,其中svn界面化使用操作简单,本篇简单介绍SVN搭建配置全过程. 1. 下载并安装 yum install subversion 查看版本 svnserve --v ...

  2. Git本地服务器搭建及使用详解

    Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...

  3. SVN服务器搭建之提交日志模版构建

    SVN服务器搭建之提交日志模版构建 日志提交有两种 一种是自己客户端设置提交日志模版,这个只适用于自己,没办法强制性运用到项目中,只能依照每个人的自觉性来处理. 第二种方法是SVN服务器设置提交日志模 ...

  4. git 服务器搭建及提交代码检查

    本地 git 服务,通常都会选择 gitlab.本人最先也是选择 gitlab,在 centos7 上按照官网的步骤进行安装,下载的速度难以忍受,无奈放弃.最终选择在 docker 中安装 gogs ...

  5. Git本地服务器搭建

    安装编译环境,执行以下命令 [root@centos6 ~]# yum -y install curl curl-devel zlib-devel openssl-devel perl cpio ex ...

  6. Windows平台下Git(gitblit)服务器搭建

    环境:Windows 10 专业版32位 因为公司服务器上已经搭了Visual SVN等,只好在Windows上搭个Git Server给大家用. 参考链接:http://www.cnblogs.co ...

  7. git server服务器搭建

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579 ...

  8. SVN服务器搭建和配置使用详解

    SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...

  9. linux git server 简易搭建 (ssh访问)

    git的服务器搭建,如果无需权限控制,仅团队内部使用,初始化一个服务器仓库,其他人通过ssh访问这个文件夹即可.如需复杂的管理,建议使用gitlab. yum install git -y id gi ...

随机推荐

  1. 解决 Error: ENOSPC: System limit for number of file watchers reached

    manjaro 18.0 kde版本 运行 yarn test报错 Error: ENOSPC: System limit for number of file watchers reached 解决 ...

  2. js便签笔记(10) - 分享:json.js源码解读笔记

    1. 如何理解“json” 首先应该意识到,json是一种数据转换格式,既然是个“格式”,就是个抽象的东西.它不是js对象,也不是字符串,它只是一种格式,一种规定而已. 这个格式规定了如何将js对象转 ...

  3. 【IT笔试面试题整理】字符串转数组+数组转字符串

    [试题描述]定义一个函数,字符串转数组数组转字符串 [参考代码] public static int strToInt(String str) { int i = 0, num = 0; char[] ...

  4. MQ5.3在redhat9上的安装

    一.准备工作 1.安装linux软件包 确保系统中有libgcc_s.so和libstdc++.so.3. 如无意外,libgcc_s.so在redhat中已经存在,存放路径为:/usr/lib/gc ...

  5. java web 机试

    经过近一个月的学习,我们的java web已经学习完了. 这是我们这次的机试题. 一:题目 请利用MVC设计模式,并使用JSP.Servlet.JSTL和JQuery等技术实现动态条件的分页显示查询. ...

  6. Deep learning with Python 学习笔记(1)

    深度学习基础 Python 的 Keras 库来学习手写数字分类,将手写数字的灰度图像(28 像素 ×28 像素)划分到 10 个类别 中(0~9) 神经网络的核心组件是层(layer),它是一种数据 ...

  7. Java设计模式学习记录-简单工厂模式、工厂方法模式

    前言 之前介绍了设计模式的原则和分类等概述.今天开启设计模式的学习,首先要介绍的就是工厂模式,在介绍工厂模式前会先介绍一下简单工厂模式,这样由浅入深来介绍. 简单工厂模式 做法:创建一个工厂(方法或类 ...

  8. Linux 卸载 openjdk

    1 卸载 openjdk sudo apt-get purge openjdk*

  9. Windows Live Writer 2012离线发布WP文章教程

    1. WLW简介 Windows Live Writer是一款微软开发的文章离线发布软件,对博客文章的排版类似Word操作,比普通的HTML编辑器更强大的是其离线发布功能.支持新浪博客.网易博客.博客 ...

  10. C# Code First 配置

    前言 所谓code first,是代码优先,而不是传统的数据库优先. code first的好处多多,可不用考虑数据库,只考虑面向对象.下面我们介绍一下code first的配置. 下一篇文章地址:C ...