最全的linux上git教程

文章目录

  • 一、git安装
  • 二、git本地版本库命令说明,时光穿梭
    • 2.1 版本回退
    • 2.2 git版本库原理,工作区暂存区
    • 2.3 管理修改
    • 2.4 撤销修改
    • 2.5 删除文件
  • 三、git 远程库操作说明
    • 3.1 添加到版本库
    • 3.2 克隆版本库
  • 四、git分支管理
  • 五、版本打包
  • 六、搭建git仓库

一、git安装

  • windows安装就不说了, 下载安装包,下一步就可以了
  • ubuntu下安装
sudo apt-get update
# 安装需要的插件
sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

# 安装git
sudo apt-get install git

# 查看版本
sudo git --version
  • 配置个人的用户名和电子邮箱
git config --global user.name "名字"
git config --global user.email "邮箱"

# 查看配置
git config --list --global

# 配置也可以在 ~/.gitconfig 或 /etc/gitconfig 看到

这里加上 --global 是全局的配置, 如果想要在某个特定的配置中使用单独的配置就将–global去掉

  • 配置ssh
ssh-keygen -t rsa -C "邮箱地址”

一直enter, 会在这个路径下生成两个文件
在这里插入图片描述
在这里插入图片描述
将.pub文件的内容复制到,github或者gitlib中

  • 在gitlib中的Setting中的ssh keys写入秘钥。或直接搜索 ssh keys, 输入秘钥
    最全的linux上git教程_第1张图片
  • 到此git基本安装与配置就结束了

二、git本地版本库命令说明,时光穿梭

  • 创建版本库
# 创建文件夹
mkdir gittest

# 创建版本库
git init
ll

# 文件夹中出来一个.git文件夹, 后续跟踪管理版本库
  • 创建文件readme.txt
vim readme.txt
# 写入
git 01
git 02
  • 将文件放人git文本库
# 第一步
git add readme.txt

# 第二步
git commit -m "说明"
  • 查看
# 查看状态
git status

# 查看改了什么
git diff readme.txt

2.1 版本回退

  • 查看版本修改记录
git log

# 简化信息
git log --pretty=oneline
  • 版本回退
# 回到上一版本是HEAD^, 上上版本是HEAD^^, 还可以写数字HEAD~100
git reset --hard HEAD^

git reset --hard 版本号
# 如果找不到版本号了,查看历史命令
git reflog

2.2 git版本库原理,工作区暂存区

最全的linux上git教程_第2张图片

2.3 管理修改

  • 如果不git add, 虽然你改了文件, 但是你commit的时候版本库不会管理,这就是为什么说git是管理修改,而不是管理文件
  • 举例:
# 改变readme.txt
# git add
# 改变readme.txt
# git comiit 
# 你会发现只有第一次修改的内容提交了, 第二次没有

2.4 撤销修改

  1. 当你没有add之前,直接丢弃工作区的修改
# 让文件回到最近一次git commit或git add时的状态
git checkout -- readme.txt
  1. 如果你已经add到了暂存区
# 将暂存区的内容撤销到,回退到工作区
git reset HEAD readme.txt
  1. 如果已经commit到版本库
git reset --hard HEAD^

2.5 删除文件

  • 删除
# 方法一
git rm readme.txt
git commit -m '删除了readme.txt'

# 方法二
rm readme.txt
git add
git commit -m '删除了readme.txt'
  • 恢复
git checkout -- readme.txt

三、git 远程库操作说明

3.1 添加到版本库

最全的linux上git教程_第3张图片

  • 按照提示,将本地库推送到远程库
# origin 远程版本库的名字,一般默认是origin, 可以改
git remote add origin “自己创建的ssh,界面会提示”

# -u 是将本地master和远程master关联
git push -u origin master

# 后续push 只用
git push origin master

# 查看远程库信息
git remote -v

# 删除远程库, 其实是解除关联, 不是真的删除
git remote rm origin

3.2 克隆版本库

  • 如果是从零开发, 最好是从远程新建,然后克隆到本地
    最全的linux上git教程_第4张图片
git clone ‘复制上图内容’
# 每次编辑前, 拉取最新代码 
git pull 

四、git分支管理

  • git分支
# 创建分支
git branch 分支名

# 查看分支
git branch

# 切换分支
git checkout 分支名   或者   git switch 分支名

# 创建加切换
git checkout -b 分支名   或者      git switch -c 分支名

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

# 删除分支
git branch -d 分支名
  • 解决冲突
# 创建分支dev
git switch -c dev

# 修改readme.txt 最后一行
# 在dev分支上提交
git add readme.txt
git commit -m "change 03"

# 切换到master分支
git switch master

# 修改readme.txt 最后一行
# 在master分支上提交
git add readme.txt
git commit -m "change 04"

# 合并分支
git merge dev

# 会出现分支冲突, 查看改变git show readme.txt
# 查看冲突
cat readme.txt
# 将文档同步后重新add和commit, 然后merge

# 查看分支图
git log --graph

# 强行删除分支
git branch -D dev

五、版本打包

  • 什么是tag:相当于快照,某一时刻的版本打包以后, 无论什么时候取都是这也个代码
  • 操作
# 第一步、先切换到要打包的分支
git branch

# 第二步、打标签
git tag v1.0

# 查看标签
git tag

# 历史版本打标签
git log --pretty=oneline --abbrev-commit
git tag

# 参数-a 标签名。 -m标签说明
git tag -a v0.1 -m "version 0.1 " 1094adb
git show <tagname>

# 删除标签
git tag -d v0.1

# 推送标签到远程
git push origin v1.0

# 一次性推送所有标签
git push origin --tags

# 删除远程标签,先删除本地,再从远程删除
git tag -d v0.9
git push origin :refs/tags/v0.9

六、搭建git仓库

  1. 安装git
sudo apt-get install git
  1. 创建一个git用户,用来运行git服务
sudo adduser git
  1. 创建证书
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
  1. 初始化Git仓库
# 先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令
sudo git init --bare sample.git
  1. Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git
sudo chown -R git:git sample.git
  1. 禁用shell登录
# 出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行
git:x:1001:1001:,,,:/home/git:/bin/bash

# 改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

# 这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
  1. 克隆远程仓库
# 可以通过git clone命令克隆远程仓库了,在各自的电脑上运行
git clone git@server:/srv/sample.git
  • 如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。

引用文件
git常用命令pdf

你可能感兴趣的:(安装部署,git,linux,github)