IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git系统学习笔记 -> 正文阅读

[开发工具]git系统学习笔记

作者:recommend-item-box type_blog clearfix

git学习笔记


前言

集中式版本控制系统可使管理员轻松掌控每个开发者的权限,但在工作时显而易见的缺点是中央服务器的单点故障。 而分布式的版本控制系统在服务器断网的情况下也可以进行开发,每个客户端保存的也都是整个完整的项目。

一、初次安装git所需操作

git官网点击跳转
下载完成后,随便在某个文件下右键如果有Git Bash Here就表示安装成功。

二、使用介绍

1.创建仓库

Git 首次安装必须设置一下用户签名,否则无法提交代码。选择一个合适的地方创建一个空文件夹,并在此文件夹中右键点击Git Bash Here打开git命令窗口在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

global表示全局,这台机器所有的Git仓库都将使用这个配置。允许单个仓库使用其他的名字和邮箱。
通过git init命令把这个目录变成Git可以管理的仓库:

$ git init

在当前目录中会多一个 .git 的目录,这个目录是Git来跟踪管理版本库的,如果改乱了,就可能把Git仓库给破坏了。其中,Git是无法追踪图片、视频等二进制文件的改动的。
通过 git add 命令将文件添加到版本区(暂存区):

$ git add .   //此命令是将该 工作区中 文件夹全部提交到暂存区
$ git add hello.text   //此命令是将该 工作区中 hello.text 提交到暂存区

通过 git commit 命令将文件添加到版本区(仓库区):

$ git commit -m "提交说明"   //此命令是将该文件夹全部提交到版本区

在 -m 后面输入的是本次提交的说明,方便自己以后从历史记录里找到改动记录
注意:
git add < file > ,可以反复多次使用,添加多个文件夹;
git commit -m “提交说明” ,可以一次提交很多文件。

通过 git status 命令可以将该 工作区中 当前状态展现出来:

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

此内容表示 工作区中 版本有所改动,但 Git 未对该文件进行跟踪。需要通过 $ git commit 将文件添加到 仓库区 中进行跟踪。
通过 git diff 命令可以将该 工作区中 当前具体修改内容告诉我们:

$ git diff

2. 历史版本

通过 git reflog 命令可以查看历史版本信息:

Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git reflog
087a1a7 (HEAD -> master) HEAD@{0}: commit: my third commit
ca8ded6 HEAD@{1}: commit: my second commit
86366fa HEAD@{2}: commit (initial): my first commit

其中,HEAD指针 指向为当前版本分支 master 为默认主分支。087a1a7、ca8ded6、86366fa分别为三次改动版本的版本号。
通过 git log 命令可以查看版本详细信息:

$ git log

通过 git reset --hard 版本号 命令可以进行版本穿梭:

$ git reset --hard 版本号

其原理是: 改变 Git 内部 HEAD指针 的指向,而你让 HEAD 指向哪个版本号,便把当前版本定位在哪且工作区中的文件也会更新为此版本内容。

┌────┐
│HEAD│
└────┘
   │
   └──> ○ append GPL
        │
        ○ add distributed
        │
        ○ wrote a readme file      

改为指向 add distributed:

┌────┐
│HEAD│
└────┘
   │
   │    ○ append GPL
   │    │
   └──> ○ add distributed
        │
        ○ wrote a readme file        

如若想退回到某个版本,可以通过命令 git reflog 查看命令历史,以便确定要回到未来的哪个版本(获取 该版本的 版本号 )。确定所退回版本之后再通过 git reset --hard 版本号 命令便可重返未来。

通过 git checkout – file 命令可以用来撤销对工作区中文件的修改:

$ git checkout -- file

在工作区,你修改了一个东西,但你想撤销修改,便可以通过该命令撤销修改就回到和版本库一模一样的状态,即用版本库里的版本替换工作区的版本,无论工作区是修改还是删除都可以“一键还原”。

3. 工作区、版本区和远程仓库

Git 存储关系图
工作区就是你在电脑里能看到的目录,比如文件夹中的 Hello.text 文件;版本区 为工作区中一个隐藏目录 .git ,这个不算工作区而是 Git 的 版本区。
在 版本区 中拥有两个区即:暂存区与仓库区,只有提交到仓库区的文件才会被 Git 跟踪记录。

本地仓库是对于远程仓库而言的。
本地仓库 = 工作区 + 版本区
工作区即磁盘上的文件集合。
版本区(版本库)即.git文件
版本库 = 暂存区(stage) + 分支(master) + 指针Head

前面讲了我们文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

4. Git 分支操作

分支解释图
使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。同时并行推进多个功能开发,可以提高开发效率。同时,各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。分支
通过 git branch -v 命令可以查看所有分支:

Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git branch -v
* master 087a1a7 my third commit (*代表当前所在的分区)

通过 git branch 分支名 命令可以创建分支:

Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git branch hot-fix
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git branch -v
hot-fix 087a1a7 my third commit (刚创建的新的分支,并将主分支 master的内容复制了一份)
* master 087a1a7 my third commit

分支之间的操作互不影响。

通过 git checkout 分支名 命令可以切换分支:

Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'
//发现当先分支已由 master 改为 hot-fix
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (hot-fix)
$

通过 git merge 分支名 命令可以合并分支:

$ git merge hot-fix

产生冲突

冲突产生的原因:
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替
我们决定使用哪一个。必须人为决定新代码内容。

解决冲突

编辑有冲突的文件,删除特殊符号,决定要使用的内容

特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix

在解决冲突之后可再执行添加到暂存区 $ git add 操作,并执行提交(注意:此时使用 git commit 命令时不能带文件名)

5. 远程仓库操作

在将文件添加到仓库区之后的操作便是,将仓库区的文件提交到远程仓库里。
通过 git remote add 别名 远程地址 命令可以创建远程仓库别名:

$ git remote add origin https://github.com/name/name_cangku.git

表示把你本地的仓库与GitHub上的远程仓库连接起来。只需要连接一次,以后提交的时候就可以不用写这条命令了。name是你的github名字,name_cangku是你的仓库名。注意不要把后面的.git给漏掉了!

通过 git remote -v 命令可以创建远程仓库别名:

Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$ git remote -v
origin https://github.com/name/name_cangku.git (fetch)
origin https://github.com/name/name_cangku.git (push)
ori https://github.com/atguiguyueyue/git-shTest.git (fetch)
ori https://github.com/atguiguyueyue/git-shTest.git (push)

这里有两个远程库,在推送本地分支到远程仓库时可以根据别名来区分远程仓库。

通过 git clone 远程地址 命令可以克隆远程仓库到本地:

$ git clone https://github.com/atguiguyueyue/git-shTest.git

注意:clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名

push操作

通过 git push 别名 分支 命令可以推送本地分支到远程仓库:

$ git push origin master

1、将 本地当前分支 推送到 远程指定分支 上(注意:pull是远程在前本地在后,push相反):

$ git push origin <本地分支名>:<远程分支名>

2、将 本地当前分支 推送到 与 本地当前分支 同名的远程分支上:

$ git push origin <本地分支名>

pull操作

通过 git pull 远程库地址别名 远程分支名 命令可以将远程仓库对于分支最新内容拉下来后与
当前本地分支直接合并:

$ git pull origin master

1、将 远程指定分支 拉取到本地指定分支上:

$ git pull origin <远程分支名>:<本地分支名>

2、将远程指定分支 拉取到 本地当前分支 上:

$ git pull origin <远程分支名>

提示:本人编写为原创,内容如有问题欢迎指正

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:49:24  更:2021-11-30 15:51:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:29:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码