0


最全的linux上git教程

文章目录

一、git安装

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

# 安装gitsudoapt-getinstallgit# 查看版本sudogit--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, 输入秘钥在这里插入图片描述
  • 到此git基本安装与配置就结束了

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

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

# 创建版本库git init
ll

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

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

# 查看改了什么gitdiff readme.txt

2.1 版本回退

  • 查看版本修改记录
git log

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

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

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

在这里插入图片描述

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 删除文件

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

三、git 远程库操作说明

3.1 添加到版本库

在这里插入图片描述

  • 按照提示,将本地库推送到远程库
# 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 克隆版本库

  • 如果是从零开发, 最好是从远程新建,然后克隆到本地在这里插入图片描述
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 分支名
  • 解决冲突
# 创建分支devgit switch -c dev

# 修改readme.txt 最后一行# 在dev分支上提交gitadd readme.txt
git commit -m"change 03"# 切换到master分支git switch master

# 修改readme.txt 最后一行# 在master分支上提交gitadd 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
sudoapt-getinstallgit
  1. 创建一个git用户,用来运行git服务
sudo adduser git
  1. 创建证书
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
  1. 初始化Git仓库
# 先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令sudogit init --bare sample.git
  1. Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git
sudochown-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

本文转载自: https://blog.csdn.net/zpp15603669517/article/details/125727991
版权归原作者 永久_小玖 所有, 如有侵权,请联系我们删除。

“最全的linux上git教程”的评论:

还没有评论