Git基本操作

1 篇文章 0 订阅
本文介绍了Git,世界上最先进的分布式版本控制系统,包括安装配置、用户信息设置、创建本地版本库、远程仓库操作以及常见Git命令。通过实例演示了如何在码云上创建和管理仓库,以及如何进行版本回退、分支管理和文件管理。此外,还讲解了.gitignore文件的使用和版本控制策略。
摘要由CSDN通过智能技术生成

1.Git

1.1简介

Git是由林纳斯·托瓦兹编写的,目前世界上最先进的分布式版本控制系统。
参考网站:
https://www.runoob.com/git/git-tutorial.html
http://gitref.justjavac.com/

1.2安装配置

Windows版的Git,从https://git-scm.com/download/win下载然后按默认选项安装即可。

1.2.2判断是否安装

方式一:安装完成后,右键打开菜单栏找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功
。
方式二:在cmd中git version 是否出现版本号。

1.2.3配置用户信息

初次下载需要配置自己的用户名与邮箱。
git config --global user.name “Your Name”
git config --global user.email “email@example.com”
git config user.name 查看配置的姓名
git config user.email 查看配置的邮箱

1.3创建本地版本库

1.3.1初始化Git

git init
说明这个文件夹已经被Git管理

1.3.2 Git中的三区

本地Git中分为三区分别是工作区、暂存区、版本区,如图所示:
在这里插入图片描述

1.3.3 Git本地常用命令

本地常用命令:
git add XXX.XX提交某个文件
git add *或者git add . 提交工作区的全部文件到暂存区 不包括忽略的文件。
git commit -m’xxxxx’ 提交暂存区的文件到版本区 提交了什么一定要写清楚,不能瞎写。

1.4远程仓库(即代码托管平台)

常见的代码托管平台有:
国内:码云Gitee、码市、CSDN
国外:GitHub、gitlib
码云:
https://gitee.com/
GitHub:
https://github.com/

1.5创建仓库

1.5.1 远程创建,再克隆(推荐此方法)

第一步:
在码云上创建仓库
第二步:
将远程仓库克隆到本地
git clone https://gitee.com/用户个性地址/HelloGitee.git
第三步:
在编辑器中打开仓库,添加忽略文件
创建.gitignore配置文件
该文件说明哪些文件不想要Git管理,就将其添加到.gitignore配置文件中。
第四步:
正常增加编写文件

git add *
git commit -m’’
git push -u origin master (首次)
git push origin master 正常将本地提交推送到远程仓库

1.5.2 本地创建再关联远程仓库

第一步:
在码云上创建仓库
第二步:
在本地初始化Git仓库
git init
初始化的仓库和码云上的仓库名字一致。
第三步:
关联本地和远程仓库
git remote add origin https://gitee.com/用户个性地址/HelloGitee.git
注:不小心关联错了仓库,怎么办?
解决一:暴力解决:删除.git,重新本地仓库管理
解决二:优雅解决:git remote remove origin,在重新关联仓库
git remote -v查看远程库的详细信息
第四步:
git pull origin master
拉取/更新本地仓库,和远程仓库保持一致
第五步:
在编辑器中打开仓库,添加忽略文件
创建.gitignore配置文件
该文件说明哪些文件不想要Git管理,就将其添加到.gitignore配置文件中。
第六步:
正常增加编写文件

git add *
git commit -m’’
git push -u origin master (首次)
git push origin master 正常将本地提交推送到远程仓库

扩展:忽略文件 .gitignore

#表示此为注释,将被Git忽略
.a 表示忽略所有 .a 结尾的文件
!lib.a 表示但lib.a除外
/TODO 表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
node_modules
/dist
build/ 表示忽略 build/目录下的所有文件,过滤整个build文件夹;
doc/
.txt 表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
bin/: 表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 表示忽略根目录下的bin文件
/.c: 表示忽略cat.c,不忽略 build/cat.c
debug/
.obj: 表示忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj
/foo: 表示忽略/foo,a/foo,a/b/foo等
a/
/b: 表示忽略a/b, a/x/b,a/x/y/b等
!/bin/run.sh 表示不忽略bin目录下的run.sh文件
*.log: 表示忽略所有 .log 文件
config.php: 表示忽略当前路径的 config.php 文件

/mtk/ 表示过滤整个文件夹
*.zip 表示过滤所有.zip文件
/mtk/do.c 表示过滤某个具体文件

被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传
需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下:
!.zip
!/mtk/one.txt
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢?
想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么.gitignore规则应写为::
/mtk/

!/mtk/one.txt

假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
注意上面的/mtk/*不能写为/mtk/,否则父目录被前面的规则排除掉了,one.txt文件虽然加了!过滤规则,也不会生效!

1.6常用Git命令

1.6.1拉取

如果远程有更新, 拉取到本地
git pull origin master
git fetch origin master /fetʃ/ 取来
注:pull和fetch的区别?
git pull origin master

  • 将远程仓库的master分支上代码版本复制/合并到本地master分支上
  • git fetch origin master:dev
  • 新建了一个dev分支,将远程仓库的master分支上代码版本复制到dev分支上
  • 就一定不会产生冲突
  • git diff master dev对比两分支内容,观察会不会产生冲突
  • 如果会,先解决,在合并分支。如果不会,就直接合并分支
    注:合并分支时,如果在同一个文件,在同一个地方,都修改了或新增内容会引起版本冲突。

1.6.2差异对比

git diff master dev:对比两分支内容
git diff --cached : 比较版本区与暂存区 /kæʃt/ 储藏
git diff master : 比较版本区与工作区

1.6.3 日志+版本号

git log 显示从最近到最远的所有提交日志 /lɒg/ 记录
git reflog 显示每次提交(commit)的commit id

1.6.4 版本回退+版本穿梭+版本撤销

git reset --hard HEAD^ 版本回退(回退一次提交)
git reset --hard Obfafd 回退到指定Obfafd的commit id版本
git rm --cached x.txt 从暂存区删除文件
git reset 可以将暂存区的内容退回到工作区。

1.6.5删除文件

git rm x.txt 删除文件(前提:文件已被git管理)
git rm -r x 删除文件夹(前提:文件夹不为空,且备git管理才可以)

1.6.6 分支

git branch 查看当前分支
git checkout -b dev 创建dev分支,并切换到dev分支
git checkout master 切换分支
git merge dev 合并指定dev分支到当前分支 /mɜːdʒ/ 合并
git branch -d dev 删除指定分支
git diff branch1 branch2 显示出两个分支之间所有有差异的文件的详细差异
git diff branch1 branch2 --stat 显示出两个分支之间所有有差异的文件列表
git diff branch1 branch2 文件名(带路径) 显示指定文件的详细差异

扩展:

可视化的工具多种多样,但都是基于Git命令的,万变不离其宗。常见的几种工具:Git GUI
、TortoiseGit、GitHub desktop、各种编辑器自带的git工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hope°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值