Git使用手册

Git使用手册

版本控制

什么是版本控制:版本迭代 需要版本管理器

管理我们对文件、目录或工程等内容的修改历史,便于查看

就是为了管理多人开发进行版本控制管理。

常见的版本控制

  • Git
  • SVN
  • CVS
  • VSS
  • TFS
  • visual studio Online

版本控制分类

  1. 本地版本控制

    记录文件的每次更新,可以对每个版本做一个快照,或者是补丁

  2. 集中版本控制 SVN(类似与Git)

    所有的版本都保存在服务器上,协同开发者从服务器上同步更新或上传自己的代码

    适合多人开发,每天同步版本,不过会有些单点问题

  3. 分布式版本控制 Git

    每个电脑上都有一个独立的版本控制,每个人都拥有全部的代码,存在风险。

    好处:在本地可以看到所有历史版本,可以保证效率,

    不会因为服务器问题造成工作问题。

Git和SVN的区别是什么

SVN是集中式的版本控制,需要中央服务器,必须联网才能工作

Git是分布式的版本控制,没有中央服务器,不需要联网之间工作,每个人都是完整的版本。

Git是目前世界上最先进的分布式版本控制工系统

聊聊Git历史

linux开发的背景下,林纳斯花两周开发了Git

Git环境配置

打开Git官网去操作,但是下载操作速度极慢,可以去镜像下载

直接安装就可以

卸载:直接反向安装就可以:环境变量的清理;

Git bash:Unix与Linux风格的命令行,使用最多,推荐最多

Git CMD:Windows风格的命令行

Git GUI:图形化界面

常用的Linux命令

平时一定要多使用这些基础的命令!

1)、cd : 改变目录。

2)、cd . . 回退到上一个目录,直接cd进入默认目录

3)、pwd : 显示当前所在的目录路径。

4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。

5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。

6)、rm: 删除一个文件, rm index.js 就会把index.js文件删除。

7)、mkdir: 新建一个目录,就是新建一个文件夹。

8)、rm -r : 删除一个文件夹, rm -r src 删除src目录

rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!

9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。

10)、reset 重新初始化终端/清屏。

11)、clear 清屏。

12)、history 查看命令历史。

13)、help 帮助。

14)、exit 退出。

15)、#表示注释

Git配置

#查看系统config
git config --system --list

#修改系统config
git config --system --edit

#查看当前用户(global)配置
git config --global --list

#修改当前用户(global)配置
git config --global --edit

#修改config文件
vim ~/.gitconfig

#设置用户名&邮箱
git config --global user.name "no_one"

git config --global user.email 123456@qq.com

Git基本理论

工作区域

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iinxzdW9-1624782768253)(/Users/lannisite/Library/Application Support/typora-user-images/image-20210624111152019.png)]

Git本地有三个工作区域:工作目录、暂存区(stage\index)、资源库(Repository)、加上远程的git仓库,就可以分为四个区,四个区的文件关系图如上。

  • Workspace:平时存放代码的地方
  • Index/stage:暂存区,由于临时存放我的改动,事实上它是一个文件,保存提交到文件列表的信息
  • Repository:安全存放数据的地方,这里有我提交到所有版本的数据, 其中HEAD指向最新存放如仓库的版本。
  • Remote Directory: 远程仓库,托管代码的服务器,可以简单的认为是我项目里一台电脑用于远程交换。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-drlQEuj6-1624782768254)(/Users/lannisite/Library/Application Support/typora-user-images/image-20210624112302523.png)]

.git文件夹是隐藏文件夹

工作流程

git的流程一般是这样的:

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域; git add
  3. 将暂存区域的文件提交的git仓库; git commit

因此,git管理文件的三种状态:已修改(modified)、已暂存(staged)、已提交(commited)

图片

Git 项目搭建

创建工作目录与常用命令

工作目录(workspace)一般是你希望git帮助你管理的文件夹,可以是你的项目目录,也可以是一个空目录,建议不要有中文,日常使用一般只有6个命令:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-er5k9iAK-1624782768255)(/Users/lannisite/Library/Application Support/typora-user-images/image-20210624150129337.png)]

本地仓库搭建

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

  1. 创建全新仓库,需要用GIT管理的项目等的根目录执行;

    #	在当前目录新建一个Git代码库
    	git init
    
  2. 执行之后可以看见,仅仅在项目目录多出一个git目录(是隐藏起来的,不过可以在命令行里cd .git可以进去),关于版本等的所有信息都在这个目录里面。

克隆远程仓库

  1. 另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地!

    #	克隆一个项目和它的完整代码历史(版本信息)
    $ git clone [url]
    
  2. 去gitee或者github上克隆一个试试!

Git 文件操作

文件的四种状态

想要对文件进行控制,就要先对文件的状态进行熟悉;

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入的git库,不参与版本控制,通过 git  add 状态转变为Stage
  • Unmodify:文件已入库,未修改,即版本库中的文件快照内容与文件完全一致,这种类型的文件有两个去处,如果被修改,则变为Modified,如果使用git rm移出版本库,则变为untracked状态文件。
  • Modified:文件已修改,仅仅是修改,并没有进行其他操作,这个文件也有两个去处,通过git  add可进入暂存staged状态,使用git checkout 则会丢弃修改,返回到unmodify状态,这个git checkout即从库中取出文件,覆盖到当前修改!
  • Staged:暂存状态,执行git commit中将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态,执行git reset HEAD filename 取消暂存,文件状态转变为Modified

查看文件的状态

上面说的文件的4种状态,通过如下命令可以查看到文件状态:

#	查看制定文件状态
$ git status [filename]

#	查看所有文件状态
$ git status

#	添加所有文件到暂存区
$ git add .       

# 提交暂存区中的内容到本地仓库 -m 提交信息
$ git commit -m "消息内容"    

忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
$ *.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
$ !lib.txt     #但lib.txt除外
$ /temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
$ build/       #忽略build/目录下的所有文件
$ doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

使用码云

1、注册登录码云,完善个人信息

2、设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库!)

# 进入 C:\Users\Administrator\.ssh 目录
# 生成公钥
$ ssh-keygen

3、将公钥信息public key 添加到码云账户中即可!

4、使用码云创建一个自己的仓库!

许可证:开源是否可以随意转载,开源但是不能商业使用,不能转载,… 限制!

克隆到本地!

IDEA中集成Git

  1. 新建项目,绑定git
  2. 修改文件使用IDEA操作git
    1. 添加到暂存区
    2. commit提交
    3. push到远程仓库
  3. 提交测试

Git分支

分支在GIT中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!

git分支中常用指令:

# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r

# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值