Git 版本调节

Git详解及 github与gitlab使用,githubgitlab

Git 版本调节器

(本文书档案由XDL教师黄超,使用马克Down创设而成,转载请注解出处)

1.Git的安装 和 基本配备

1.1 关于版本调节

1.什么是Git

当今世界起首进/最棒用的遍及式版本调整系统,未有之一

1.1 安装

Linux安装

二进制包(在线)
yum -y install git //RedHat系列
apt-get git install //Debian系列
源码包(官方网站下载)

Windows安装

Git在Windows使用模拟条件msysgit
下载地址:
https://git-for-windows.github.io/
留神:借使想让windows作为git服务器则须求搭建ssh服务。


1.1.1 本地版本调节

地点版本调节系统
许五人习贯用复制整个项目目录的措施来保存不一样的版本,大概还有大概会改名加上备份时间以示差距。这么做独一的
好处正是轻松,但是特别轻便犯错。一时候会混淆所在的干活目录,一十分大心会写错文件可能覆盖意想外的文本。

图片 1

2.怎么着是版本调控系统?

版本调节 — <<维基百科>>

版本调控是一种软件工程本领,能在软件开垦的进程中,确定保障由差别人所编纂的同一代码文件案都获得同步.
版本调整能使项目标设计者,将项目苏醒到事先放肆的情事,这种选择权在策画进度中特意首要.
商量上具备的消息记录都得以加上版本调整:利用版本调节来追踪、维护源码、文件以及配置文件等等的改动


1.2 配置

无论Linux依然Windows,安装完结后都要初步化

git config [--global] user.name "Your Name"
git config [--global] user.email "your@email.com"

中括号内的参数:
    --local 本地
    --system 系统
    --global 全局
    无参,则为当前库配置身份

1.1.2 聚焦国化学工业进出口总公司的版本调控系统

何以让在分裂连串上的开荒者协同事业?于是,集中国化学工业进出口总公司的版本调节系统(Centralized
Version  Control Systems,简称 CVCS)应时而生。这类系统,诸如
CVS、Subversion 以及Perforce
等,都有一个纯粹的聚焦管理的服务器,保存全部文件的校正版本,而协同专门的学业的公众都经过客户端连到那台服务器,抽出最新的公文只怕提交更新。多年的话,那已形成版本调节系统的正规做法。

图片 2

3.版本决定发展史

2. Git常用操作

1.1.3 布满式版本调控系统

         在那类系统中,像Git、Mercurial、Bazaar 以及 Darcs
等,客户端并不只领到最新版本的公文快速照相,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工成效的服务器发生故障,事后都能够用其它贰个镜像出来的本土宾馆恢复生机。因为每二次的仿制操作,实际上都以一遍对代码旅社的完整备份。

图片 3

3.1 文件名艺术

往昔的软件开垦进程,代码管理以手动和邮件等方式,文件命名及保存存在难点

如图 : 结束学业杂谈版本
图片 4

2.1. 生成新的版本库

  1. 新建空目录
  2. 步向该目录—单击右键—接纳Git Bash Here
  3. 弹出git的命令行工具
  4. 开首化该目录为版本酒店,键入 git init
  5. 显示 Initialized empty Git repository in xxxxxx
  6. ls -a 查看该目录下现身.git的隐藏目录,即版本库
  7. 起先化达成

1.2 Git简介

图片 5

 

    官网:

         git是三个布满式版本调节软件,最初由林纳斯·托瓦兹(Linus
Torvalds)创作,于贰零零陆年以GPL发表。最初指标是为更加好地管理Linux内核开辟而陈设。

Git 官方汉语手册

3.2 集中式

总结库和职业区两有的:专门的职业区编码,再上传至库的法子成功多个人搭档。
题材:专门的学业机与库机须求联网能力调整版本,传输速度异常的慢。
图片 6

2.2.添Gavin件到版本库

  1. 新建文件 1.txt

  2. 翻开当前版本状态

     git status     #查看当前版本状态
    
  3. 红字提示有文件未追踪(未参预版本调整)

  4. 在工具内输入以下,添Gavin件至版本库:

     git add 1.txt
     # 添加文件至缓存区
     git commit -m "描述"
     # 提交文件至版本库
    
     git add newfile1 newfile2 ...
     # 多文件添加
     git commit -m "描述"
     # 将缓存区的多次添加一次提交
    
     ps:
     git add .
     # 添加所有改动过的文件到缓存区
     git add --all
     # 添加所有文件到缓存区
    
  5. 实践完后,提醒提交完结.

  6. git status 提示
    nothing to commit, working directory clean

  7. 到现在最简便的增加文件到版本库已形成


1.2.1 Git历史

自2003年开头,林纳斯·托瓦兹决定使用BitKeeper作为Linux内核重要的版本调整系统用于怜惜代码。因为BitKeeper为专有软件,那几个决定在社区中长期遭逢困惑。在Linux社区中,特别是Richard·Stowe曼与自由软件基金会的分子,主张应该使用开放源代码的软件来作为Linux宗旨的版本调节系统。林纳斯·托瓦兹曾思量过使用现有软件作为版本调节系统(举例Monotone),但那个软件都设有一点点难题,特别是性质不好。现存的方案,如CVS的架构,受到林纳斯·托瓦兹的商酌。

二零零六年,Andrew·垂鸠写了四个大约程序,能够连接BitKeeper的存储库,BitKeeper作品权具备者Larry·麦沃伊以为安德鲁·垂鸠对BitKeeper内部使用的磋商进行逆向工程,决定撤废免费使用BitKeeper的授权。Linux内核开拓公司与BitMover公司举行蹉商,挂念余力绌解决他们中间的分歧意见。林纳斯·托瓦兹决定机关开荒版本调节系统取代BitKeeper,以十天的大运,编写出第二个git版本

3.2 分布式

每台Computer都有专业区和库本身调整版本,数据更是安全,有逻辑上的主旨。
图片 7


2.3.查看文件修改意况相关

git status
# 查看当前版本状态(是否修改)

修改文件测验以下 :

git diff            # 工作区 与 缓存区的区别
git diff --cached   # 缓存区 与 版本库的区别
git diff HEAD       # 工作区 与 版本库的区别

Git日志,解析日志构成 :

git log
# 查看提交历史
git log --oneline
# 以简短的方式查看提交日志

1.3 安装git

4.大规模版本调整系统

图 : 版本管理器的发展史

图片 8

那张图上分为了多少个时期 :

● 公元元年在此之前一代:1983年的RCS。今后您或然还是能在Unix的披露包中找到它。


古典时期:一九九〇年的CVS本人劣点已经过时;1983年的PVCS、一九九四年的clearcase(开销高昂、成效复杂沿用于今);微软VVS反人类;Perforace(普遍,谷歌(Google)之中最大代码管理器)


中世纪一代:SVN化解了CVS的标题,集英式领域王者。AccuRev(支持分支合并让相当多厂商拜托cvs和clearcase)。


文化艺术复兴:BitKeeper(SUN集团大批量采用),二零零一年Linux内核使用BitKeeper,二零零七年闭源时有人计划破解BitKeeper,于是出现了Git。

2.4. 版本回降

git reset --hard HEAD
# 将当前版本重置为HEAD(通常用于清空缓存区,或merge失败回退)

git reset --hard HEAD^   # 回退上一个版本
git reset --hard HEAD^^  # 回退上两个版本
git reset --hard HEAD~n  # 回退上n个版本

git reset --hard <commitid>
# 回退到指定版本,commitid根据log获取

1.3.1 情形表明

[[email protected] ~]# rpm -qa centos-release
centos-release-7-4.1708.el7.centos.x86_64
[[email protected] ~]# uname -a
Linux gitlab 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[[email protected] ~]# getenforce 
Disabled
[[email protected] ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

# 本文使用的linux系统均为该系统

# 本文使用的windows系统为 Microsoft Windows [版本 10.0.15063]

Git问世

Git的首先个本子是Linux之父Linus
Torvalds亲手操刀设计和兑现的(两周内用C写完),Linus不只有给出三个土生土长设计,并在向世人介绍Git时鲜明商议了CVS和SVN等,Git解决了分段和合併的害怕。非常多种型开源项目由SVN迁移至Git。

二〇〇两年www.github.com也成为世界最大的SCM系统(软件配置管理),它应用的正是Git版本库的工夫.从此Git成为版本调控系统的主流。

GitHub上的名牌项目 :
Linux内核、安卓、jQuery、Bootstrap、Ruby …


2.5. 作为日志

git reflog
# 行为日志,显示所有提交,回滚等..
git ls-files
# 显示缓存区的所有文件

1.3.2 Yum安装Git

# centos 自带git

[[email protected] ~]# rpm -qa git
git-1.8.3.1-11.el7.x86_64

 # 安装格局

yum install git -y

5.Git的设置 和 基本配备

2.6. 撤销

指标:将从未提交至版本库的修改撤回。

  • 动静一 : 文件修改后并没有增加至缓存区

git checkout --filename
# 在工作区撤销文件的修改
  • 事态二 : 文件修改已加多至缓存区

git checkout HEAD [filename]
# 撤回添加至缓存区的修改,不指定filename则撤回所有

1.3.3 编写翻译安装

编写翻译安装能够安装较新本子的git

Git下载地址:

# 安装依赖关系
yum install curl-devel expat-devel gettext-devel  openssl-devel zlib-devel
# 编译安装
tar -zxf git-2.0.0.tar.gz
cd git-2.0.0
make configure
./configure --prefix=/usr
make  
make install  

5.1 安装

Linux安装

二进制包(在线)
yum -y install git //RedHat系列
apt-get git install //Debian系列
源码包(官方网址下载)

Windows安装

Git在Windows使用模拟条件msysgit
下载地址:

专注:假诺想让windows作为git服务器则需求搭建ssh服务。


本学科使用windows版本来做示范:

设置步骤:

1.选项设置路线
图片 9
2.精选创立Logo,选用安装Git Bash和Git GUI
图片 10

3.摘取创设初步菜单
图片 11
4.增选:use git and optional unix tools from the windows command
prompt(红字提醒)
图片 12

5.选择: windows-style
图片 13
6.选择 : use mintty 暗中同意终端
图片 14

7.接纳 : 系统文件缓存 和 git的管理器(须求.net v4.5.1)
图片 15
8.点击 Install 安装
图片 16
9.安装实现,采纳运转git bash工具


2.7. 删除

git rm index.php
# 删除index.php文件
git rm --cached index.php
# 将index.php文件移出缓存区,但不删除( -r * 递归目录)
git rm -f 1.html
# 将缓存区中的1.html文件移出并删除

1.4 初次运营 Git 前的配置

5.2 配置

无论Linux依旧Windows,安装达成后都要开首化

git config [--global] user.name "Your Name"
git config [--global] user.email "your@email.com"

 

中括号内的参数:

 --local 本地
    --system 系统
    --global 全局
    无参,则为当前库配置身份

 

3. Git多人合营

1.4.1 配置git

命令集

git config --global user.name "clsn"  #配置git使用用户
git config --global user.email "[email protected]"  #配置git使用邮箱
git config --global color.ui true  #语法高亮
git config --list # 查看全局配置

配置进度

[[email protected] ~]# git config --global user.name "clsn"  #配置git使用用户
[[email protected] ~]# git config --global user.email "[email protected]"  #配置git使用邮箱
[[email protected] ~]# git config --global color.ui true  #语法高亮
[[email protected] ~]# git config --list # 查看全局配置
user.name=clsn
user.email=[email protected]
color.ui=true

转换的布置文件

[[email protected] ~]# cat .gitconfig 
[user]
    name = clsn
    email = [email protected]
[color]
    ui = true

6. Git常用操作

3.1. 收获远程的版本库

能够选取三种格局来收获远程版本库:

  • 在某些钦命的文本夹下使用,就能够获取远端版本库及代码

git clone <远端版本库url> <本地存放该库的文件夹名>
  • 手动增多版本库,并拉取文件

git init
#初始化本地仓库

git remote add <remote> <url>
# 添加远程版本库 <remote>可自行取名,默认origin

git remote -v
# 查看远程版本库信息
git remote show <remote>
# 查看指定远程版本库信息

git remote remove <remote>
# 删除远程remote链接

git pull <remote> <branch>
# 下载代码及快速合并

1.4.2 获取扶助

应用Git时索要得到辅助,有二种艺术能够找到Git命令的使用手册:

git help <verb>
git <verb> --help
man git-<verb>

举个例子,要想获得配置命令的手册,实施

git help config

6.1. 生成新的版本库

  1. 新建空目录
  2. 进去该目录—单击右键—选取Git Bash Here
  3. 弹出git的命令行工具
  4. 早先化该目录为版本仓库,键入 git init
  5. 显示 Initialized empty Git repository in xxxxxx
  6. ls -a 查看该目录下出现.git的潜伏目录,即版本库
  7. 早先化完结

3.2. 推送分支代码

获得远端版本库后,能够在地点按常规的步调编辑 :
新建或转移文件–>加多至缓存区–>提交到版本库

此刻,要想将地面版本库发给远端,独有commit提交是远远不够的.
还须求下边包车型大巴操作 :

git push <remote> <branch>
# 上传代码及快速合并

实践以上代码,会有报错 : 不可能直接推送到远端的主分支

那时,能够曲线救国,推送本身的支行到远端就能够 :

git push origin master:dev

此刻,推送成功!


1.5 获取 Git 仓库(开始化商旅)

# 创建目录
mkdir git_data
# 进入目录
cd git_data/
# 初始化
git init
# 查看工作区状态
git status

操作进度

[[email protected] ~]# mkdir git_data
[[email protected] ~]# cd git_data/
[[email protected] git_data]# git init
初始化空的 Git 版本库于 /root/git_data/.git/
[[email protected] git_data]# git status
# 位于分支 master
#
# 初始提交
#
无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)

6.2.添Gavin件到版本库

  1. 新建文件 1.txt

  2. 翻看当前版本状态

    git status     #查看当前版本状态
    

     

  3. 红字指示有文件未追踪(未走入版本调节)

  4. 在工具内输入以下,添Gavin书至版本库:

    git add 1.txt
    # 添加文件至缓存区
    git commit -m "描述"
    # 提交文件至版本库
    
    git add newfile1 newfile2 ...
    # 多文件添加
    git commit -m "描述"
    # 将缓存区的多次添加一次提交
    
    ps:
    git add .
    # 添加所有改动过的文件到缓存区
    git add --all
    # 添加所有文件到缓存区
    

     

  5. 进行完后,提醒提交完毕.

  6. git status 提示

    nothing to commit, working directory clean
    

     

  7. 于今最简便易行的拉长文件到版本库已做到


4.Git分支管理

1.6 Git命令常规操作

常用命令表达

命令

命令说明

add    

添加文件内容至索引

bisect 

通过二分查找定位引入 bug 的变更

branch 

列出、创建或删除分支

checkout

检出一个分支或路径到工作区

clone  

克隆一个版本库到一个新目录

commit 

记录变更到版本库

diff   

显示提交之间、提交和工作区之间等的差异

fetch  

从另外一个版本库下载对象和引用

grep   

输出和模式匹配的行

init   

创建一个空的

Git    

版本库或重新初始化一个已存在的版本库

log    

显示提交日志

merge  

合并两个或更多开发历史

mv     

移动或重命名一个文件、目录或符号链接

pull   

获取并合并另外的版本库或一个本地分支

push   

更新远程引用和相关的对象

rebase 

本地提交转移至更新后的上游分支中

reset  

重置当前HEAD到指定状态

rm     

从工作区和索引中删除文件

show   

显示各种类型的对象

status 

显示工作区状态

tag

创建、列出、删除或校验一个GPG签名的 tag 对象

常用操作暗意图

图片 17

文本的场馆变化周期

图片 18

— PS部分: Git 完毕原理 —

  1. 行事区 : 正是技术员平时编写代码的文书夹
  2. 本子库 : 担当代码版本调控,正是.git遮蔽目录
  3. 版本库原理图 :

图片 19

版本库富含:暂存区(index/stage),HEAD(指针),分支(默以为master主分支)等。

文本提交至版本库总共分两步:

1).git add filename # 添加至stage缓存区
2).git commit -m "描述" # 将stage的内容提交至版本库的master分支

 

实验:
修改文件->查看意况->
累加到缓存区->查看情状->
再度修改->提交->查看景况

翻开不一致:
1). 修改文件->查看意况 :
展现红字,文件没在缓存区(工作区修改,还尚无付诸到缓存区)
2). 增加到缓存区git add . -> 查看状态 : 彰显绿字,已交由到缓存区
3). 继续修改文件->git commit -m "第1次修改 1.txt" ->
再度翻开情形 : 展现红字:文件有改观未步向到版本库

4).
本次提交,只是提交了add到缓存区的内容,第贰回修改的剧情并不曾add到缓存区,所以版本库与职业区文件区别.
5). 此时亟待将日前的公文add到缓存区,再度提交就可以

4.1. 翻看版本库分支

git branch
# 显示本地分支
git branch -a
# 显示所有分支
git checkout 分支名/标签名
# 切换到指定分支或标签

1.6.1 成立文件

[[email protected] git_data]# touch README
[[email protected] git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#    README
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

 

增加文书追踪

[[email protected] git_data]# git add ./*
[[email protected] git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#    新文件:    README
#

文本会增添到.git的遮蔽目录

[[email protected] git_data]# tree  .git/
.git/
├── branches
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   └── update.sample
├── index
├── info
│   └── exclude
├── objects
│   ├── e6
│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│   ├── info
│   └── pack
└── refs
    ├── heads
    └── tags

由职业区提交到地头宾馆

[[email protected] git_data]# git commit  -m 'first commit'  
[master(根提交) bb963eb] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README

查看git的状态

[[email protected] git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区

付给后的git目录状态

[[email protected] git_data]# tree  .git/
.git/
├── branches
├── COMMIT_EDITMSG
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   └── update.sample
├── index
├── info
│   └── exclude
├── logs
│   ├── HEAD
│   └── refs
│       └── heads
│           └── master
├── objects
│   ├── 54
│   │   └── 3b9bebdc6bd5c4b22136034a95dd097a57d3dd
│   ├── bb
│   │   └── 963eb32ad93a72d9ce93e4bb55105087f1227d
│   ├── e6
│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│   ├── info
│   └── pack
└── refs
    ├── heads
    │   └── master
    └── tags

— PS.部分甘休 —


4.2. 成立分支/删除分支

git branch 分支名
# 新建分支
git checkout -b dev
# 创建并切换到dev分支

git branch -d 分支名
# 删除本地分支 -D 强制删除

1.6.2 增添新文件

git add  * 添加到暂存区域
git commit  提交git仓库 -m 后面接上注释信息,内容关于本次提交的说明,方便自己或他人查看

修改或删除原有文件

常规办法

git add  *
git commit

方便人民群众方法

git commit -a  -m "注释信息"

-a 表示一向交给

Tell the command to automatically stage files that have been modified and deleted, but new files you have not told Git about are
not affected.

6.3.翻看文件修改境况相关

git status
# 查看当前版本状态(是否修改)

 

修改文件测验以下 :

git diff
# 查看所有添加到缓存区的变更(工作区与版本库的区别)
git diff index.php
# 查看工作区文件和库文件区别
git diff --cached
# 查看所有已添加到缓存区,但还未commit的变更(缓存区与版本库的区别)

 

Git日志,解析日志构成 :

git log
# 查看提交历史
git log --oneline
# 以简短的方式查看提交日志

 


4.3. 联合分支

要将B分支合併到A分支里
请切换来A分支援内地建设,合併B分支的操作在A分支援内地建设进行

git merge 分支名
# 合并分支到当前分支 

1.6.3 删除git内的文书

指令表明:

• 未有增加到暂存区的数码直接rm删除就可以。

• 已经加多到暂存区数据:

git rm –cached database 

#→将文件从git暂存区域的寻踪列表移除(并不会删除当前工作目录内的数据文件)

git rm -f database

#→将文件数量从git暂存区和专门的学业目录一同删除

命令实施:

# 创建新文件
[[email protected] git_data]# touch 123
[[email protected] git_data]# git status
# 位于分支 master
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#    123
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

# 将文件增多到暂存区域

[[email protected] git_data]# git add 123
[[email protected] git_data]# git status
# 位于分支 master
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
#    新文件:    123

#  删除文件

[[email protected] git_data]# rm 123 -f
[[email protected] git_data]# ls
[[email protected] git_data]# git status
# 位于分支 master
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
#    新文件:    123
#
# 尚未暂存以备提交的变更:
#   (使用 "git add/rm <file>..." 更新要提交的内容)
#   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
#    删除:      123
# 

[[email protected] git_data]# git reset HEAD  ./* 
[[email protected] git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区

6.4. 本子回落

git reset --hard HEAD
# 将当前版本重置为HEAD(通常用于清空缓存区,或merge失败回退)

git reset --hard HEAD^   # 回退上一个版本
git reset --hard HEAD^^  # 回退上两个版本
git reset --hard HEAD~n  # 回退上n个版本

git reset --hard <commitid>
# 回退到指定版本,commitid根据log获取

 


4.4. 解决统一争持

多分支修改同一文件,合併或然出现争辩。顶牛部分用<<<===>>>表示

化解方法:
先手动修改争论部分,再一次提交就可以。


1.6.4 重命名暂存区数据

• 未有增多到暂存区的数目直接mv/rename改名就可以。

• 已经增添到暂存区数据:

git mv README NOTICE

6.5. 表现日志

git reflog
# 行为日志,显示所有提交,回滚等..
git ls-files
# 显示缓存区的所有文件

 


5. 选择代码托管种类

市情上盛名的Git托管系统 :

  • GitHub
    https://github.com/
  • 开源中夏族民共和国
    https://git.oschina.net/

1.6.5 查看历史记录

• git log   #→查看提交历史记录

• git log -2   #→查看近期几条记下

• git log -p -1  #→-p呈现每回提交的原委差别,比方仅查看近期一遍差别

• git log –stat -2
#→–stat简要来得数据增改行数,那样能够看出提交中期维修改过的从头到尾的经过,对文件增多或移动的行数,并在最终列出全数增减行的大体新闻

• git log –pretty=oneline #→–pretty依据分歧的格式体现提交的历史消息

• git log –pretty=fuller -2 #→以更详实的格局输出提交的历史记录

• git log –pretty=fomat:”%h %cn” 
#→查看当前具有提交记录的简短SHA-1哈希字串与提交着的全名。

选择format参数来钦点具体的输出格式

格式

说明

%s

提交说明。

%cd

提交日期。

%an

作者的名字。

%cn

提交者的姓名。

%ce

提交者的电子邮件。

%H

提交对象的完整SHA-1哈希字串。

%h

提交对象的简短SHA-1哈希字串。

%T

树对象的完整SHA-1哈希字串。

%t

树对象的简短SHA-1哈希字串。

%P

父对象的完整SHA-1哈希字串。

%p

父对象的简短SHA-1哈希字串。

%ad

作者的修订时间。

一声令下施行

[[email protected] git_data]# git log
commit a409fc46f792228a8119705e9cc97c2a013534ab
Author: clsn <[email protected]>
Date:   Wed Nov 29 11:44:14 2017 +0800

    test

commit bb963eb32ad93a72d9ce93e4bb55105087f1227d
Author: clsn <[email protected]>
Date:   Wed Nov 29 10:57:02 2017 +0800

    first commit

6.6. 撤销

指标:将从未提交至版本库的改造撤回。

  • 情形一 : 文件修改后没有增多至缓存区

    git checkout --filename
    # 在工作区撤销文件的修改
    

     

  • 动静二 : 文件修改已加多至缓存区

    git checkout HEAD [filename]
    # 撤回添加至缓存区的修改,不指定filename则撤回所有
    

     


5.1. 开源中华人民共和国 生成SSH密钥

1). 本地展开git bash ,cd切换来用户的家目录
2). 使用pwd来查看目录是或不是正确
3). 使用 ssh-keygen.exe -t rsa 来生成SHA256的SSH密钥(按回车确认就可以)
4). cd .ssh/ 切换至ssh目录
5). ls 查看目录下文件
6). cat id_rsa.pub 查看生成的密钥,并复制

7). 展开git@osc开源中中原人民共和国,登陆本身的账户.点选个人资料
8). 选择SSH公钥
9).
在累加公钥分界面,将刚刚复制好的密钥粘贴进来,再本身取二个该密钥的名字,以便于分别处理

10). 本地新建叁个目录,用于拉取远端版本库
11). 使用 git init初阶化该目录
12). 使用git remote add origin <SSH地址> 来增添远程版本库

13). 使用git remote -v 来查看远程版本库音讯
14). 使用git pull origin marster来拉取版本库及代码

1.6.6 还原历史数据

Git服务程序中有一个称呼HEAD的版本指针,当用户申请苏醒数据时,其实正是将HEAD指针指向到有个别特定的交付版本,但是因为Git是遍及式版本调控系统,为了幸免历史记录争执,故使用了SHA-1总计出十六进制的哈希字串来分别各样提交版本,别的私下认可的HEAD版本指针会指向到前段时间的三次提交版本记录,而上二个交由版本会叫HEAD^,上上贰个版本则会称呼HEAD^^,当然一般会用HEAD~5来代表往上数第七个提交版本。

git reset –hard   hash

git reset –hard HEAD^  #→还原历史提交版本上二次

git reset –hard 3de15d4
#→找到历史还原点的SHA-1值后,就足以回复(值不写全,系统

会活动匹配)

测量检验命令

[[email protected] git_data]# git log
commit a409fc46f792228a8119705e9cc97c2a013534ab
Author: clsn <[email protected]>
Date:   Wed Nov 29 11:44:14 2017 +0800

    test

commit bb963eb32ad93a72d9ce93e4bb55105087f1227d
Author: clsn <[email protected]>
Date:   Wed Nov 29 10:57:02 2017 +0800

    first commit

         还原数据

[[email protected] git_data]# git reset --hard  bb963
HEAD 现在位于 bb963eb first commit
# 查看数据
[[email protected] git_data]# ls
README

6.7. 删除

git rm index.php
# 删除index.php文件
git rm --cached index.php
# 将index.php文件移出缓存区,但不删除( -r * 递归目录)
git rm -f 1.html
# 将缓存区中的1.html文件移出并删除

 


5.2. github 添加SSH key

1). 运营 git Bash 客户端,输入如下代码:
$ cd ~/.ssh
$ ls
那五个指令便是反省是还是不是曾经存在 id_rsa.pub 或 id_dsa.pub
文件,如若文件已经存在,那么您能够跳过步骤2,直接进去步骤3

2). 创立一个 SSH key
$ ssh-keygen -t rsa -C "your_email@example.com"
代码参数含义:
-t 钦命密钥类型,暗中同意是 rsa ,能够总结。
-C 设置注释文字,比方邮箱。
-f 钦命密钥文件存款和储蓄文件名。

3). 增添你的 SSH key 到 github下边去
$ cat ~/.ssh/id_rsa.pub

4). 测量检验一下该SSH key 在git Bash 中输入以下代码
$ ssh -T git@github.com
来得类似如下,表示成功:
Hi username! You've successfully authenticated

5). git clone 远程git仓库地址


1.6.7 还原以后数量

哪些是前景数据?正是您回复到历史数据了,不过你后悔了,想收回改动,然而git
log已经找不到这几个版本了。

git reflog #→查看以后历史更新点

测量试验命令

[[email protected] git_data]# git reflog
bb963eb [email protected]{0}: reset: moving to bb963
a409fc4 [email protected]{1}: reset: moving to a409fc4
bb963eb [email protected]{2}: reset: moving to bb963
a409fc4 [email protected]{3}: commit: test
bb963eb [email protected]{4}: commit (initial): first commit
[[email protected]lab git_data]#  

7. Git多少人同盟

6. 文本忽略

专门的工作区有个别文件不调节版本,可使用.gitignore文件进行忽略.
!(注意, .gitignore文件 是没著名字的文件.)
规则:
以斜杠“/”初叶表示目录;
以星号“*”通配多少个字符;
以问号“?”通配单个字符
以方括号“[]”包罗单个字符的合营列表;
以叹号“!”表示不忽视(追踪)匹配到的文书或目录;

配备文件是按行从上到下进行平整相称的,意味着一旦前方的准绳相配的限制更加大,则后边的平整将不会生效.

1.6.8 标签使用

眼前回滚使用的是一串字符串,又长又难记。

git tag v1.0  
#→当前交由内容打一个标签(方便高效回滚),每一趟提交都足以打个tag。

git tag          #→查看当前怀有的价签

git show v1.0   #→查看当前1.0本子的详细音信

git tag v1.2 -m “version 1.2 release is test” 
#→创制带有表达的标签,-a钦定标具名字,-m钦命表明文字

git tag -d v1.0   #→大家为同叁个交到版本设置了五次标签,删除在此之前的v1.0

测验命令

[[email protected] git_data]# git reset --hard 0bdf2e7
HEAD is now at 0bdf2e7 modified README file
[[email protected] git_data]# git reset --hard V1.0
HEAD is now at a66370a add test dir

[[email protected] git_data]# git tag  v20171129
[[email protected] git_data]# git tag 
v20171129

7.1. 获取远程的版本库

能够动用三种艺术来获取远程版本库:

  • 在某些内定的文书夹下使用,就能够获得远端版本库及代码

    git clone <远端版本库url> <本地存放该库的文件夹名>
    

     

  • 手动加多版本库,并拉取文件

    git init
    #初始化本地仓库
    
    git remote add <remote> <url>
    # 添加远程版本库 <remote>可自行取名,默认origin
    
    git remote -v
    # 查看远程版本库信息
    git remote show <remote>
    # 查看指定远程版本库信息
    
    git pull <remote> <branch>
    # 下载代码及快速合并
    

     


1.6.9 相比较数据

            git
diff能够对照当前文件与堆栈已保存文件的界别,知道了对README作了何等修改

后,再把它交给到酒店就放⼼多了。

git diff README

7.2. 推送分支代码

获得远端版本库后,能够在该地按常规的手续编辑 :
新建或更动文件–>增添至缓存区–>提交到版本库

这时候,要想将本地版本库发给远端,独有commit提交是相当不够的.
还索要上面包车型地铁操作 :

git push <remote> <branch>
# 上传代码及快速合并

 

实施以上代码,会有报错 : 不能间接推送到远端的主分支

那儿,可以曲线救国,推送本身的分支到远端就可以 :

git push origin master:dev

 

那时候,推送成功!


1.7 分支协会

在其实的类型开辟中,尽量保障master分支牢固,仅用于公布新本子,通常不用随意间接修改里面包车型大巴数据文件。

那在哪干活呢?干活都在dev分支上。每种人从dev分支创立和睦个人分支,开采完合併到dev分支,最终dev分支合併到master分支。所以协会的合作分支看起来会像下图那样。

图片 20

8.Git分支管制

1.7.1 分支切换

    [[email protected] git_data]# git branch linux
    [[email protected] git_data]# git branch 
      linux
    * master
    [[email protected] git_data]# git checkout linux 
    切换到分支 'linux'
    [[email protected] git_data]# git branch 
    * linux
      master

在linux分支进行更换

    [[email protected] git_data]# cat README 
    [[email protected] git_data]# echo "2017年11月30日" >> README 
    [[email protected] git_data]# git add .
    [[email protected] git_data]# git commit -m "2017年11月30日09点10分"
    [linux 5a6c037] 2017年11月30日09点10分
     1 file changed, 1 insertion(+)
    [[email protected] git_data]# git status 
    # 位于分支 linux
    无文件要提交,干净的工作区

回到master分支

    [[email protected] git_data]# git checkout master 
    切换到分支 'master'
    [[email protected] git_data]# cat README 
    [[email protected] git_data]# git log  -1
    commit 7015bc7b316cc95e2dfe6c53e06e3900b2edf427
    Author: clsn <adm[email protected]>
    Date:   Wed Nov 29 19:30:57 2017 +0800

        123

合併代码

    [[email protected] git_data]# git merge linux 
    更新 7015bc7..5a6c037
    Fast-forward
     README | 1 +
     1 file changed, 1 insertion(+)
    [[email protected] git_data]# git status 
    # 位于分支 master
    无文件要提交,干净的工作区
    [[email protected] git_data]# cat README 
    2017年11月30日

8.1. 查看版本库分支

git branch
# 显示本地分支
git branch -a
# 显示所有分支
git checkout 分支名/标签名
# 切换到指定分支或标签

 

1.7.2 合併停业化解

模仿争执,在文件的同等行做分歧修改

在master 分支实行改换

[[email protected] git_data]# cat README 
2017年11月30日
[[email protected] git_data]# echo  "clsn in master">> README 
[[email protected] git_data]# git commit -a -m "clsn 2017年11月30日 09点20分 "
[master 7ab71d4] clsn 2017年11月30日 09点20分
 1 file changed, 1 insertion(+)

切换到linux分支

[[email protected] git_data]# git checkout linux 
切换到分支 'linux'
[[email protected] git_data]# cat README 
2017年11月30日
[[email protected] git_data]# echo "clsn in linux" >> README 
[[email protected] git_data]# git commit -a -m "2017年11月30日 03"
[linux 20f1a13] 2017年11月30日 03
 1 file changed, 1 insertion(+)

归来master分区,举行联合,出现冲突

[[email protected] git_data]# git checkout master 
切换到分支 'master'
[[email protected] git_data]# git merge linux
自动合并 README
冲突(内容):合并冲突于 README
自动合并失败,修正冲突然后提交修正的结果。

焚薮而田抵触

[[email protected] git_data]# vim README 
2017年11月30日
clsn in master
clsn in linux

# 手工业消除争论

[[email protected] git_data]# git commit -a -m "2017年11月30日 03"
[master b6a097f] 2017年11月30日 03

8.2. 创办分支/删除分支

git branch 分支名
# 新建分支
git checkout -b dev
# 创建并切换到dev分支

git branch -d 分支名
# 删除本地分支 -D 强制删除

 

1.7.3 删除分支

因为从前曾经统一了linux分支,所以未来来看它在列表中。
在那些列表中拨知名字前未有 * 号的支行常常能够使用 git branch -d
删除掉;你已经将它们的劳作整合到了另三个分层,所以并不会失去任何事物。

查阅全部满含未合併工作的分段,能够运营 git branch –no-merged:

git branch --no-merged
  testing

那边显得了其它分支。 因为它满含了还未合併的行事,尝试运用 git branch -d
命令删除它时会退步:

git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'. 

假诺确实想要删除分支并屏弃那多少个工作,就如扶助音信里所提出的,能够选用
-D 选项强制删除它。

8.3. 集结分支

要将B分支合併到A分支里
请切换来A分支援内地建设,合併B分支的操作在A分支援内地建设进行

git merge 分支名
# 合并分支到当前分支 

 

1.8 windwos上Git的使用

windows 上git软件网址

   
软件下载地址:

         软件设置默许就能够。

8.4. 消除统一争执

多分支修改同一文件,合并只怕出现争执。争持部分用<<<===>>>表示

图片 21

化解方法:
先手动修改争辩部分,再一次提交就能够。


1.8.1 软件应用

始建新的客栈

图片 22

         定义酒馆的路线

图片 23

         增加用户消息(在 git bash中)

[email protected] MINGW64 /i/git_data (master)
$ git config  --global user.email "[email protected]"

[email protected]-Desktop MINGW64 /i/git_data (master)
$ git config  --global user.name "clsn"

         在git Gui 中加上用户音讯,增添二次就可

图片 24

         在页面上校数据配置好就可以使用

图片 25

         查看历史数据

图片 26

8.5. 分支管理战略

图片 27


1.9 gitlab的使用

前方大家曾经清楚Git人人都以骨干,那他们怎么交互数据吧?

• 使用GitHub或者码云等公共代码仓库

• 使用GitLab私有饭馆

9. 施用代码托管连串

市道上知名的Git托管系统 :

  • GitHub
  • 开源中华人民共和国

以下以开源中中原人民共和国为例,来学学生运动用

1.9.1 安装配置gitlab

合法安装文书档案   

境内软件镜像站

安装

[[email protected] ~]# yum localinstall gitlab-ce-9.1.4-ce.0.el7.x86_64.rpm

初始化

[[email protected] ~]# gitlab-ctl reconfigure

状态

[[email protected] ~]#  gitlab-ctl status
run: gitaly: (pid 4491) 48s; run: log: (pid 4087) 279s
run: gitlab-monitor: (pid 4539) 44s; run: log: (pid 4251) 207s
run: gitlab-workhorse: (pid 4501) 47s; run: log: (pid 4099) 273s
run: logrotate: (pid 4125) 265s; run: log: (pid 4124) 265s
run: nginx: (pid 4112) 271s; run: log: (pid 4111) 271s
run: node-exporter: (pid 4175) 243s; run: log: (pid 4174) 243s
run: postgres-exporter: (pid 4528) 45s; run: log: (pid 4223) 219s
run: postgresql: (pid 3933) 343s; run: log: (pid 3932) 343s
run: prometheus: (pid 4514) 46s; run: log: (pid 4156) 259s
run: redis: (pid 3876) 355s; run: log: (pid 3875) 355s
run: redis-exporter: (pid 4186) 237s; run: log: (pid 4185) 237s
run: sidekiq: (pid 4078) 281s; run: log: (pid 4077) 281s
run: unicorn: (pid 4047) 287s; run: log: (pid 4046) 287s

反省端口

[[email protected] ~]# netstat -lntup|grep 80
tcp        0      0 127.0.0.1:8080      0.0.0.0:*    LISTEN     4073/unicorn master 
tcp        0      0 0.0.0.0:80      0.0.0.0:*         LISTEN      4112/nginx: master  
tcp        0      0 0.0.0.0:8060       0.0.0.0:*      LISTEN      4112/nginx: master  

9.1. 本土生成SSH密钥

1). 本地张开git bash
,cd切换成用户的家目录
2). 使用pwd来查阅目录是或不是科学
3). 使用 ssh-keygen.exe -t rsa
来生成SHA256的SSH密钥(按回车确认就可以)
4). cd .ssh/
切换至ssh目录
5). ls 查看目录下文件
6). cat id_rsa.pub
查看生成的密钥,并复制

7). 展开git@osc开源中中原人民共和国,登陆本人的账户.点选个人资料
8). 选择SSH公钥
9).
在抬高公钥分界面,将刚刚复制好的密钥粘贴进来,再本人取贰个该密钥的名字,以便于分别管理

10). 本地新建三个索引,用于拉取远端版本库
11). 使用
git init伊始化该目录
12). 使用git remote add origin <SSH地址>
来增添远程版本库

13). 使用git remote -v
来查看远程版本库新闻
14). 使用git pull origin marster来拉取版本库及代码


Git常用命令速查

  • master 暗许主分支
  • dev 暗中认可开拓分支

创办版本库

git init
# 初始化本地git版本库(创建新仓库)

git config --global user.name "xxx"
# 配置用户名

git config --global user.email "xxx@xxx.com"
# 配置邮件

git config --list
#查看当前配置列表

git clone <url>
# clone远程仓库

 

修改、提交、删除

git add index.php
# 添加index.php文件到缓存区
git add .
# 添加所有改动过的文件到缓存区
git add --all
# 添加所有文件到缓存区

git commit
# 提交缓存区内的文件(回车后需要键入描述:wq保存退出)
git commit -m "描述"
# 提交缓存区内的文件,并提供描述

git commit -am '描述'
# 将add和commit合为一步
git commit --amend -m 'xxx'
# 合并最后一次提交(用于反复修改)

git rm index.php
# 删除index.php文件
git rm --cached index.php
# 将index.php文件移出缓存区,但不删除( -r * 递归目录)
git rm -f 1.html
# 将缓存区中的1.html文件移出并删除

 

查看

git status
# 查看当前版本状态(是否修改)

git diff
# 查看所有添加到缓存区的变更(工作区与版本库的区别)
git diff index.php
# 查看工作区文件和库文件区别
git diff --cached
# 查看所有已添加到缓存区,但还未commit的变更(缓存区与版本库的区别)

git log
# 查看提交历史
git log --oneline
# 以简短的方式查看提交日志

git reflog
# 行为日志,显示所有提交,回滚等..
git ls-files
# 显示缓存区的所有文件

 

回退 与 撤销

git reset --hard HEAD
# 将当前版本重置为HEAD(通常用于merge失败回退)

git reset --hard HEAD^   # 回退上一个版本
git reset --hard HEAD^^  # 回退上两个版本
git reset --hard HEAD~n  # 回退上n个版本

git reset --hard <commitid>
# 回退指定版本,commitid根据log获取

git checkout --filename
# 在工作区撤销文件的修改
git checkout HEAD [filename]
# 撤回添加至缓存区的修改,不指定filename则撤回所有

 

分段操作

git pull origin master
# 获取远程分支master并merge到当前分支

git branch
# 显示本地分支
git branch -a
# 显示所有分支
git checkout 分支名/标签名
# 切换到指定分支或标签

git branch 分支名
# 新建分支
git branch -d 分支名
# 删除本地分支 -D 强制删除

 

长距离合营

git remote add <remote> <url>
# 添加远程版本库
git remote -v
# 查看远程版本库信息
git remote show <remote>
# 查看指定远程版本库信息
git remote remove <name>
# 删除远程remote链接
git remote rename <old> <new>
# 重命名远程链接名

git pull <remote> <branch>
# 下载代码及快速合并

git push <remote> <branch>
# 上传代码及快速合并

git merge origin master
# 将本地的远端库合并

git fetch origin
# 将远端库获取本地但不合并

 

1.9.2 使用浏览器访谈,实行web分界面操作

第三次访谈,创立密码

图片 28

         进行登入,用户名称叫root,密码为12345678

图片 29

开创贰个新的类别

图片 30

         定义项目标名号

图片 31

         创造完成后会提醒未有增加ssh密钥

图片 32

         在服务器上开创ssh密钥 使用ssh-ketgen 命令

[[email protected] ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:n/V2kCiwwm2UfBsnQLm17eXUCBiBByyPbefmz5oQvfU [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|       o++o+     |
|      ..+o+ .    |
|       ==++o.. o |
|     ..o==o=..+..|
|      o.So+.++o  |
|       o oo*.o.. |
|        .o+   E .|
|         ..o . . |
|          ooo    |
+----[SHA256]-----+

[[email protected] .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSVdBypha/ALMmvIiZGXxYGz7FJ5TC+hYWo7QGBJ+J6JVinp9yH851fwxln5TWGBrtEousoVHXTTJfFRy8LV+Ho7OfaksYt+5TPxEjf5XX53Z3ZX70PYH3DQFmgzl0QpWw1PYIjrD7kBeLhUg+R/ZePS+HzPvbRCb6gOlkdx46vX4Olr7YbAO5lzAarhaZcE2Q702kPXGeuZbR7KcwVhtoiueyHwyj94bccMfKq7qSskXGbpWuCwcaKQ6uqGap1rP5Viqqv0xeO7Vq0dIZ/YnPL2vPDUvNa36nHosiZGkn4thpPh63KjXaFIfKOuPemLzvDZY0A+88P8gwmAYiPoxp [email protected]

         将密钥增添到web分界面包车型地铁用户中

图片 33

*gitlab自带的命令集***

Command line instructions
Git global setup
git config --global user.name "Administrator"
git config --global user.email "[email protected]"
Create a new repository
git clone [email protected]:root/clsn.git
cd clsn
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Existing folder
cd existing_folder
git init
git remote add origin [email protected]:root/clsn.git
git add .
git commit -m "Initial commit"
git push -u origin master
Existing Git repository
cd existing_repo
git remote rename origin old-origin
git remote add origin [email protected]:root/clsn.git
git push -u origin --all
git push -u origin --tags

*创设行的git仓库***

[[email protected] ~]# git clone [email protected]:root/Test1.git
正克隆到 'Test1'...
The authenticity of host 'gitlab (10.0.0.63)' can't be established.
ECDSA key fingerprint is SHA256:yOrzs0W+R//s8VDEN9nko6r6wW+8gwJl3Ut7ac0i5SY.
ECDSA key fingerprint is MD5:21:33:dd:4d:01:00:eb:71:a4:4e:2d:2b:bf:37:48:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab' (ECDSA) to the list of known hosts.
warning: 您似乎克隆了一个空版本库。

         成立文件并推到远端git旅馆

[[email protected] Test1]# echo "clsn" >> clsn
[[email protected] Test1]# git push -u origin master
分支 master 设置为跟踪来自 origin 的远程分支 master。
Everything up-to-date

         推送达成后能够在web分界面中查阅

图片 34

# md 语法的使用格局

*至此gitlab的利用达成了 ***

1.10 GitHub托管服务

Github看名就能够知道意思是一个Git版本库的托管服务,是当下满世界最大的软件旅馆,具有上百万的开垦者用户,也是软件开拓和查找能源的特级路径,Github不仅可以够托管各样Git版本仓库,还装有了更雅观的Web分界面,您的代码文件能够被任何人克隆,使得开拓者为开源项贡献代码变得越发轻便,当然也能够付账购买私有库,那样高性能和价格的比例的私有库真的是帮衬到了广大企业和商社。

1.10.1 注册GitHub

浏览器访谈github官方网址 : ,点击Sign up 进行挂号

图片 35

         填写个人音讯,实行注册

图片 36

挑选旅舍类型,暗许免费,点击底下Continue注册

图片 37

         描述一下你和谐,当然,这一步能够跳过

图片 38

         用户成立达成,能够创制新的品类

图片 39

专注:创立新的门类事先要现验证邮箱

图片 40

1.10.2 增添密钥

在github上增加二个新的ssh密钥

图片 41 

收获主机(linux)上的密钥

[[email protected] ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:n/V2kCiwwm2UfBsnQLm17eXUCBiBByyPbefmz5oQvfU [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|       o++o+     |
|      ..+o+ .    |
|       ==++o.. o |
|     ..o==o=..+..|
|      o.So+.++o  |
|       o oo*.o.. |
|        .o+   E .|
|         ..o . . |
|          ooo    |
+----[SHA256]-----+

[[email protected] ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCmv4aEEEpbUyzv1r6SN0JqOfeyQ7sZZbXxWFv4xflIJeK/rl8cF7UYCzjLEvwJlrkIjKSs5uW1x0zWEcZFiv5tGCiO7DeMR6pKUAn7NzNjKiCcElCXiqHVew84iTbxX4MWKlbFoJYO9/wQ1NlrQfqcSgZwJTLKBMVoMXvTWPPGXf6AwdSp68guFwwGDIV8BiHZiy61bKiWYSVKSDP47Y7VUV/bdwGaxG7tAfalWVpe6xXXRtsj58sENyIWbRI7/9XWqs+eV+CgI74YjOanMvHnHFlfg0tb+MewRb4tFGVmroFBRsvfI3Sl2fez2zHG0qh3f34/0KF1kitlWkgcBJqN [email protected]

windwos上拿到密钥的方法(供给安装git for windows)

[email protected] MINGW64 /i/Desktop
$ ssh-keygen.exe
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/default.DESKTOP-U9D5JP4/.ssh/id_rs                                                                                                                                  a):
Created directory '/c/Users/default.DESKTOP-U9D5JP4/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/default.DESKTOP-U9D5JP4/.ssh/id_r                                                                                                                                  sa.
Your public key has been saved in /c/Users/default.DESKTOP-U9D5JP4/.ssh/id_rsa.p                                                                                                                                  ub.
The key fingerprint is:
SHA256:aqnHq/xNn159jBX4o2L2ZJdtiwu4ietvKRT2fL9igZo [email protected]Desktop
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|              .  |
|             . . |
|       o      . .|
|      . S .    o.|
|       + +.o ..++|
|     .= +.o=++oo=|
|   . ooE.+==*.oo.|
|    +++=*== .=o. |
+----[SHA256]-----+

[email protected]-Desktop MINGW64 /i/Desktop
$

[email protected]-Desktop MINGW64 /i/Desktop
$ cat /c/Users/default.DESKTOP-U9D5JP4/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC15+1oQBzvgzQP3p0Lb9FsTKFfIIws9WxGBVl2B9d2                                                                                                                                  qT2eKFgXoEDNCF/OrhhXvbMDhORxXHf9RG0Aqj+/vJddbaQpCawHhP6VUG1X885xhY4OohDOkFQiWD1s                                                                                                                                  DCMkX7OHNW5ake6P8AdNwI6eSpKYKYCxRMGkRiBa1KDRtG8CvsG8VN0iTSW0UZ3s4Ps+S31pBYlNjOMv                                                                                                                                  Lp0HRAMVhYimLLi0Wz2mBffPOeNjPX1FfJdr+hO7TIRNdyAEGIhSbckkAnVEIASAhI0Re/19v1RnSkk2                                                                                                                                  VtBvc5rVeGxFMNuEIl9WDMSTcedhEGXyRlW2N9TtXlvF1eNflzUg2BtCaCFZ [email protected]

图片 42

         密钥创立实现后张开增添

图片 43

         密钥增加成功

图片 44

 

1.10.3 创设旅馆

安不忘危干活早就完毕,右上角点击创立三个新的仓库

图片 45

         创设旅馆,输入个人新闻

图片 46

         根据地方的唤起,创立四个代码旅舍

图片 47

         在个体主机上进行推送测量试验

[[email protected] ~]# mkdir -p clsn 
[[email protected] ~]# cd clsn/
[[email protected] clsn]# echo "# test" >> README.md
[[email protected] clsn]# git init
初始化空的 Git 版本库于 /root/clsn/.git/
[[email protected] clsn]# git add README.md
[[email protected] clsn]# git commit -m "first commit"
[master(根提交) 089ae47] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
[[email protected] clsn]# git remote add origin [email protected]:clsn-git/test.git
[[email protected] clsn]# git push -u origin master
The authenticity of host 'github.com (192.30.255.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
RSA key fingerprint is MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.255.113' (RSA) to the list of known hosts.
Counting objects: 3, done.
Writing objects: 100% (3/3), 212 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:clsn-git/test.git
 * [new branch]      master -> master
分支 master 设置为跟踪来自 origin 的远程分支 master。

         推送达成,刷新分界面就可以开采,推送上去的README.md文件

图片 48

         成立新文件,实行拉取测量试验

图片 49

         创建好后点击上边包车型客车commit就能够

图片 50

         github加多成功,举行拉取测量检验

图片 51

 

1.10.4 拉取文件测量检验

翻开目录内容

[[email protected] clsn]# ls
README.md

打开拉取

[[email protected] clsn]# git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (3/3), done.
Unpacking objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
来自 github.com:clsn-git/test
   089ae47..a16be65  master     -> origin/master
更新 089ae47..a16be65
Fast-forward
 clsn.txt | 3 +++
 1 file changed, 3 insertions(+)
 create mode 100644 clsn.txt 

         反省文件

[[email protected] clsn]# ls
clsn.txt  README.md
[[email protected] clsn]# cat clsn.txt 
# 这是惨绿少年的文档
# clsn blog  : http://blog.znix.top
# 惨绿少年的博客为 : http://blog.znix.top

*至此github的使用就介绍完了***

1.11 JetBrains PyCharm 使用github

PyCharm 下载:

1.11.1 PyCharm 上github设置

图片 52

         选择github进行三番五次

图片 53

         用户密码正确后会生产token

图片 54

         然后点击ok就能够

1.11.2 推送代码

现确认保证有在此以前设置的windwos端git,测量试验路径

图片 55

         分享代码

图片 56

         输入新闻,举行分享

图片 57

         代码发表成功

图片 58

*至此pycharm使用github就水到渠成了*

1.12 pycharm使用gitlab

使用pycharm是的vcs,现在git

图片 59

         输入gitlab地址

接下来输入用户名及密码

图片 60

         增添一些疏解信息

图片 61

         在gitlab的界面中就能够查看到传播的代码

图片 62

*至此pycharm使用gitlab就结束了*

1.13 参照他事他说加以考察文书档案

猕猴都能懂的GIT

Pro Git书籍    

  本文出自“惨绿少年”,应接转发,转载请注明出处!

github与gitlab使用,githubgitlab 1.1
关于版本调节 1.1.1 本地版本调整 本地版本调整系统
许几个人习贯用复制整个项目目录的法门来保存…

相关文章