草庐IT

最全的linux上git教程

永久_小玖 2023-04-18 原文

文章目录

一、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, 输入秘钥
  • 到此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版本库原理,工作区暂存区

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 添加到版本库

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

有关最全的linux上git教程的更多相关文章

  1. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  2. 在VMware16虚拟机安装Ubuntu详细教程 - 2

    在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主

  3. git使用常见问题(提交代码,合并冲突) - 2

    文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g

  4. hadoop安装之保姆级教程(二)之YARN的配置 - 2

    1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模

  5. ruby - Dropbox 类似 git 的服务——没有 rsync 和 inotify - 2

    关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec

  6. ruby - 混帐 & ruby : How can I unset the GIT_DIR variable from inside a ruby script? - 2

    我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co

  7. ruby - 让 bundler 使用 http : instead of git:? - 2

    我正在安装gitlabhq,并且在Gemfile中有对某些资源的“git://...”的引用。但是,我在公司防火墙后面,所以我必须使用http://。我可以手动编辑Gemfile,但我想知道是否有另一种方法告诉bundler使用http://作为git存储库? 最佳答案 您可以通过运行gitconfig--globalurl."https://".insteadOfgit://或通过将以下内容添加到~/.gitconfig:[url"https://"]insteadOf=git://

  8. ruby - 在 RUBY 上的 PADRINO 框架上使用 RSPEC 进行测试的教程 - 2

    我是Ruby新手,并被要求在我们的新项目中使用它。我们还被要求使用Padrino(Sinatra)作为后端/框架。我们被要求使用Rspec进行测试。我一直在寻找可以指导在Padrino上使用RspecforRuby的教程。我得到的主要是引用RoR。但是,我需要RubyonPadrino。请在任何入门/指南/引用/讨论等方面指导我。如有不妥之处请指正。可能是我没有针对我的问题搜索正确的词/短语组合。我正在使用Ruby1.9.3和Padrinov.0.10.6。注意:我还提到了SOquestion,但它没有帮助。 最佳答案 我没用过Pa

  9. ruby-on-rails - 安装 active admin 时 activeadmin.git (at master) is not yet checked out 错误 - 2

    Activeadmingem已添加到我的rails项目中,但每次我尝试安装railsgactive_admin:install时,我都会收到类似的错误git://github.com/activeadmin/activeadmin.git(atmaster)isnotyetcheckedout.Runbundleinstallfirst.我肯定在运行“railsgactive_admin:install”之前运行了bundle。运行“bundleshow”后,我看到我已将“*activeadmin(1.0.0.pre3f916d6)”添加到我的项目中,但不断收到此错误消息。我的gem文

  10. 区块链入门教程(6)--WeBASE-Front节点前置服务安装 - 2

    文章目录1.任务背景2.任务目标3.相关知识点4.任务实操4.1安装配置JDK4.2启动FISCOBCOS4.3下载解压WeBASE-Front4.4拷贝sdk证书文件4.5启动节点4.6访问节点4.7检查运行状态5.任务总结1.任务背景FISCOBCOS其实是有控制台管理工具,用来对区块链系统进行各种管理操作。但是对于初学者来说,还是可视化界面更友好,本节就来介绍WeBASE管理平台,这是一款微众银行开源的自研区块链中间件平台,可以降低区块链使用的门槛,大幅提高区块链应用的开发效率。微众银行是腾讯牵头设立的民营银行,在国内民营银行里还是比较出名的。微众银行参与FISCOBCOS生态建设,一定

随机推荐