分布式版本控制系统Git的使用;
1.什么是Git
Git是一个分布式的版本控制软件;
- 软件,类似于qq、office等安装到电脑才能使用的工具。
- 版本控制,类似于毕业论文,视频剪辑等需要反复修改和保留原历史数据;
- 分布式
- 文件夹拷贝
- 本地版本控制
- 集中式版本控制
- 分布式版本控制
2.为什么要做版本控制
要保留之前所有的版本,以便回滚和修改。
3.安装Git
安装Git软件有很多方式:
3.1Windows系统
https://git-scm.com/download/win
3.2Linux系统
https://git-scm.com/download/linux
3.3MacOS系统
https://git-scm.com/download/mac
4.Git的使用
4.1初始化目录
想让git对一个目录进行版本控制需要对目录初始化;
1.进入要管理的文件夹
2.执行初始化命令
sh-3.2# mkdir apps
sh-3.2# cd apps/
# 这个时候这个目录初始化完成,可以进行工作;
sh-3.2# git init
Initialized empty Git repository in /private/etc/apps/.git/
#会发现多了一个目录.git
sh-3.2# ls -l
total 0
drwxr-xr-x 9 root wheel 288 8 26 17:48 .git
4.2新建文件提交
sh-3.2# cat haitang.txt
haitang
# 新增的文件和修改过的人间都是红色的,这里显示新增了一个文件的状态是未追踪状态,使用git add来对其进行管理
sh-3.2# git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
haitang.txt
nothing added to commit but untracked files present (use "git add" to track)
4.3管理文件
sh-3.2# git add haitang.txt
# 这个时候这个文件由红色变成了绿色。
sh-3.2# git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: haitang.txt
4.4配置个人信息
说明是谁在使用;
sh-3.2# git config --global user.email "haitang@qq.com"
sh-3.2# git config --global user.name "haitang"
4.5提交至本地版本库;
使用commit提交。"里面为描述信息"
sh-3.2# git commit -m "海棠one"
[master (root-commit) 61dbe71] 海棠one
1 file changed, 1 insertion(+)
create mode 100644 haitang.txt
4.6查看log日志
这里可以看到提交的历史记录
sh-3.2# git log
commit 61dbe71f56fc1176d6f158fef61572b3515db841 (HEAD -> master)
Author: haitang <haitang@qq.com>
Date: Fri Aug 26 17:58:50 2022 +0800
海棠one
4.7回滚
添加一行执行add执行回滚操作。
sh-3.2# echo "海棠two" >> haitang.txt
对这个文件进行追踪
sh-3.2# git add .
再次提交至本地版本库
sh-3.2# git commit -m "haitang two"
[master 65a1399] haitang two
1 file changed, 1 insertion(+)
查看日志
sh-3.2# git log
commit 65a13999930ce95cd59fc09e1423ab20dcc402c6 (HEAD -> master)
Author: haitang <haitang@qq.com>
Date: Fri Aug 26 18:03:28 2022 +0800
haitang two
commit 61dbe71f56fc1176d6f158fef61572b3515db841
Author: haitang <haitang@qq.com>
Date: Fri Aug 26 17:58:50 2022 +0800
海棠one
进行回滚, 回滚方式为 git reset --hard 版本号 这个版本号不用全部写完,7位即可
sh-3.2# git reset --hard 61dbe71
HEAD is now at 61dbe71 海棠one
验证是回滚完成
sh-3.2# cat haitang.txt
haitang
4.8升级
可以通过reglog查看历史全部的记录
sh-3.2# git reflog
61dbe71 (HEAD -> master) HEAD@{0}: reset: moving to 61dbe71
65a1399 HEAD@{1}: commit: haitang two
61dbe71 (HEAD -> master) HEAD@{2}: commit (initial): 海棠one
要想回到haitangtwo执行git rest --hard 版本号即可;
sh-3.2# git reset --hard 65a1399
HEAD is now at 65a1399 haitang two
sh-3.2# cat haitang.txt
haitang
海棠two
5.Git分支命令
5.1查看分支
master前面有个*表示是在master分支
sh-3.2# git branch
* master
5.2创建分支
git branch xx分支名
sh-3.2# git branch dev
可以看到创建的dev分支
sh-3.2# git branch
dev
* master
5.3切换分支
显示已经切换为dev分支
sh-3.2# git checkout dev
Switched to branch 'dev'
可通过branch来查看在哪个分支,可以看见dev分支前面有一个*
sh-3.2# git branch
* dev
master
5.4代码合并
在dev分支上创建文件并提交
sh-3.2# touch dev.txt && echo "hello git" > dev.txt
sh-3.2# git add .
sh-3.2# git commit -m "dev 第一次提交"
[dev ea353ff] dev 第一次提交
1 file changed, 1 insertion(+)
create mode 100644 dev.txt
在master分支上合并dev分支上的代码;
sh-3.2# git checkout master
Switched to branch 'master'
在master分支上合并dev分之上的代码;
sh-3.2# git merge dev
Updating 65a1399..ea353ff
Fast-forward
dev.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 dev.txt
没有合并之前,在master分支上是看不见dev分支上的代码;
sh-3.2# cat dev.txt
hello git
5.5删除分支
git branch -d 分支名
sh-3.2# git branch -d dev
Deleted branch dev (was ea353ff).
删除了可以看见就剩下一个分支
sh-3.2# git branch
* master
6.将代码托管至远程服务器
github:
gitlab:
gitee:https://gitee.com/
选择gitee来测试
6.1创建一个仓库

6.2会生成一个仓库信息

添加仓库,注意我们配置的是SSH类型
sh-3.2# git remote add origin git@gitee.com:good-news/apps.git
6.3本地push代码至远程仓库
我们为什么能上传代码到远程仓库呢?因为我们把公钥放在了gitee,我现在把公钥拿掉,验证是否能push
sh-3.2# git push origin master
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 16 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (9/9), 699 bytes | 699.00 KiB/s, done.
Total 9 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:good-news/apps.git
* [new branch] master -> master
6.4无密钥验证是否能push代码
6.4.1 编辑第三次提交
sh-3.2# echo "haitang three" >>haitang.txt
6.4.2 追踪文件
sh-3.2# git add .
上传至本地版本库
sh-3.2# git commit -m "haitang three"
[master 9c303e7] haitang three
1 file changed, 1 insertion(+)
6.4.3 这里看到是不能上传的,因为把公钥拿掉了。
sh-3.2# git push origin master
git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.
6.5配置SSH上下传代码;
拿到本地的公钥上传至gitee个人账户下
sh-3.2# cat /var/root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZRnFbJGoALs8wMC+EJS7Yewdre8XDaheQNW6U0gmf30mZvzIspqbr5uIVnIwQaT5usYgy2EGjJ2xLRrxfwE2I8UKDyeothIM6zeQxW9Ah+tXeIgWSbX83esMRx/PxysGp4IIykW8+C5Lt3/aUWD7ABHYU2Di4aSj/71+76z877/wrgPYaWvAarU+ZRBzV7oYyXeLLy7lLuxZkFyfyArjzL7pDslOTj+fGcfAUyeOdUjyWhL+7CtvaY/fyXU/hkw9k770XNKQh4QYjZztS/FhJnwOi8OcS2j7kLJDAiaJYKKpCamAec7/f2e16f+HWCz41Wc4DFfJvlyo1/x6ADLnMmPoFoZrKLYOOxlKlCu9/SAomMOCf0qxyl

6.6测试再次上传代码
这次上传是没有问题的
sh-3.2# git push origin master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 292 bytes | 292.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:good-news/apps.git
ea353ff..9c303e7 master -> master
分布式版本控制系统Git的使用;的更多相关文章
- [.net 面向对象程序设计进阶] (27) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git
[.net 面向对象程序设计进阶] (26) 团队开发利器(六)分布式版本控制系统Git——在Visual Studio 2015中使用Git 本篇导读: 接上两篇,继续Git之旅 分布式版本控制系统 ...
- [.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
[.net 面向对象程序设计进阶] (26) 团队开发利器(五)分布式版本控制系统Git——图形化Git客户端工具TortoiseGit 读前必备: 接上篇: 分布式版本控制系统Git——使用GitS ...
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...
- 分布式版本控制系统 Git 的安装与使用
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/CJL29 ...
- 分布式版本控制系统Git的安装与使用
分布式版本控制系统Git的安装与使用 作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103 我的远端仓库地址是:htt ...
- 【软件工程】分布式版本控制系统Git的安装与使用
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/Richa ...
- 分布式版本控制系统Git的安装与使用(作业2)
(本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2103) 分布式版本控制系统Git的安装与使用 一.安装Git b ...
- 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)
近期想改公司内部的源码管控从TFS为git,发现yubinfeng大侠有关git的超详细大作,现将其转载并记录下,以防忘记,其原博客中有更加详细的git及.net开发相关内容.原文地址:http:// ...
- 分布式版本控制系统 Git 教程
简介 Git 是什么? Git 是一个开源的分布式版本控制系统. 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 什么是分布式版本控制系统? 介绍分布 ...
- 分布式版本控制系统-git
Git是目前世界上最先进的分布式版本控制系统 SVN是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?这个可以找度娘...... 1.安装Git yum i ...
随机推荐
- 想写个小说,关于C#的,名字就叫《原Csharp》吧 (第一回 买书未成炁自生 惶惶回屋遇老翁)
以前也有写过一些小说,但是总是写写停停的,因为忙于项目和其他事情,总是耽搁很久(真的是很久)才会继续动两笔,所以我想先在这里以随笔的方式写个关于C#异世界的小故事吧,更新随缘,也稍微能让自己轻松些. ...
- canal的使用
一.简介 canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实 ...
- NET架构师的基本职责
NET架构师的基本职责1 职责 对本公司大健康平台提出技术研究及可行性报告; 结合需求设计高扩展性.高性能.安全.稳定.可靠的技术系统; 可以通过配置实现业务需求的变化,跟踪并研究***并应用于产品; ...
- 不是吧?30秒 就能学会一个python小技巧?!
大家好鸭!我是小熊猫 很多学习Python的朋友在项目实战中会遇到不少功能实现上的问题,有些问题并不是很难的问题,或者已经有了很好的方法来解决.当然,孰能生巧,当我们代码熟练了,自然就能总结一些好用的 ...
- 动态树 — Link_Cut_Tree
[模板]动态树(Link Cut Tree) Link-cut-tree是一种维护动态森林的数据结构,在需要动态加边/删边的时候就需要LCT来维护. Link-cut-tree的核心是轻重链划分,每条 ...
- 数学公式 Latex 练习
\[1+x+x^2+x^3+\cdots=\frac{1}{1-x}\quad x\in(-1, 1) \] 证明:设左边式子项数为 \(n\) 那么可以得到: \[\begin{split} S & ...
- 服务器与Ajax
前端相关的技术点 HTML 主要用来实现页面的排版布局 CSS 主要用来实现页面的样式美化 JavaScript 主要用来实现前端功能特效 Ajax基础知识铺垫 客户端与服务器 通信协议( ...
- while循环&&连接的两个条件
做题的时候出现这种情况,把while中用&&连接的两个条件交换一下就会报错. 原因是 while 中是先检查第一个条件,如果第一个就为false就不看下一个了.如果第一个是true再检 ...
- AlterNats是如何做到高性能的发布订阅的?
前言 在过去的一些文章里面,我们聊了一些.NET平台上高性能编程的技巧,今天带大家了解一下AlterNats这个库是如何做到远超同类SDK性能的. NATS:NATS是一个开源.轻量级.高性能的分布式 ...
- 从零开始制作【立体键盘】,画UI免写CSS,【盲打练习】的交互逻辑只用了10来行表达式!
手把手教你从空白页面开始通过拖拉拽可视化的方式制作[立体键盘]的静态页面,不用手写一行CSS代码,全程只用10来行表达式就完成了[盲打练习]的交互逻辑. 整个过程在众触应用平台进行,快速直观. 最终U ...