Git使用详解

文章很长,详细介绍了Git的种种,新手学习起来大概要2到3个小时,不要轻易就打退堂鼓,毕竟什么事情都不是一蹴而就的,要有耐心。


目录

(一)什么是Git?

(二)Git的下载安装

(三)Git Bash的相关命令行

(四)Git的原理

 (五)Git本地的相关配置

1、 创建账户名

2、 创建邮箱地址

3、查看配置信息

(六)创建远程仓库

(七)开始操作!!

1、新建一个文件夹

2、建立本地仓库

3、本地目录连接远程仓库

4、上传到暂存区

5、从暂存区到本地仓库

 6、上传到远程仓库

 7、查看上传的文件

8、再次提交代码

(八)配置免密码登录

1、生成SSH公钥

2、查看公钥并复制下来

 3、粘贴公钥

(九)克隆到本地

(十)文件操作

1、文件的4种状态

 2、查看文件的状态

 3、忽略文件

(十一)如何在vsc中快捷提交代码

(十二)常见错误分析及解决


(一)什么是Git?

  • Git是代码的版本控制工具,我们可以用Git管理自己的代码。
  • 最终我们的代码是要上传到自己的远程仓库的,或是从远程仓库克隆(完全拷贝到本地文件夹)过来。
  • 我们在不同时间段上传的代码Git都可以记录下来并做一个直观明了的对比,增、删、改列的清清楚楚,可以随时恢复,下载。
  • 工作中基本都会用到,尤其是多人协作时

(二)Git的下载安装

  • 官网下载git并安装到电脑中,注意安装时勾选以下选项
  • 安装完成后会出现开始页面会出现Git Bash、Git CMD、GitFAQs、Git GUI、Git Release Notes这五个程序
  • 一般只会用到Git Bash(Windows 系统安装 Git 时默认集成的命令行工具,提供运行 Git 命令的集成环境),接下来的叙述中也只用到Git Bash

(三)Git Bash的相关命令行

Git Bash和Linux命令行类似,以下列举一些常用命令

  • cd 改变目录,如在Git Bash中输入cd F:\pdf回车后会进入这个目录(注意空格)
  • cd.. 回退到上一目录
  • pwd 显示当前所在目录
  • touch 新建一个文件,如touch demo.js就会在当前目录新建一个demo.js的文件
  • rm 删除一个文件,如rm demo.js就会删除demo.js文件
  • mkdir 新建一个目录,就是新建一个文件夹
  • rm -r 删除一个文件夹,如rm -r src 会删除src目录
  • mv 移动文件,如mv demo.js src demo.js(移动demo.js文件到src目录中)
  • clear 清屏(保留此终端状态)
  • reset 重新初始化终端
  • history 查看历史命令
  • help 帮助
  • exit 退出

 建议先在Git Bash中熟悉下这些命令

(四)Git的原理

Git在本地有三个工作区域:工作区--暂存区-仓库区,在加上远程的Git仓库一共四个区域!

  • 工作区(Workspace):平时存放项目代码的地方
  • 暂存区(Index/Stage):存放临时的变动
  • 仓库区(Repository):本地的git仓库,这里有所有已提交代码的版本数据,其中的HEAD是最新提交的版本
  • 远程仓库区(Remote):远程仓库,托管代码的服务器,可理解为一个云平台

 我们的代码要想提交到远程仓库必须要经过这四个区域!

  • 工作区->暂存区->仓库区->远程仓库区(代码最终的归宿)

 我们稍后再讲如何操作

 (五)Git本地的相关配置

1、 创建账户名

Git Bash中使用命令git config  - -global user.name "喜欢的名字"

2、 创建邮箱地址

使用命令git config  - -global user.email "你的邮箱地址"(要用自己的)

3、查看配置信息

使用命令git config -l,找到最下面两行,就是我们上面所配置的信息

或使用命令git config --global --list,会直接显示信息

也可以在C盘用户目录下找到.gitconfig文件查看(注意不要损坏文件)

(六)创建远程仓库

配置完了Git的相关信息,不要着急,代码还没有家呢。

注册Github或是Gitee账号,创建一个仓库,这部分就不说了哈,但是建议使用Gitee哦!毕竟GitHub是国外的,隔了一道墙使用起来有诸多不变,经常进不去。Gitee是国内的,也就多多支持下,咱们只是用仓库托管代码,二者的使用其实是完全相同的。

记住我们的仓库地址:https://gitee.com/~~~/~~~.git(这里举个例子,打不开的)

(七)开始操作!!

1、新建一个文件夹

进入此文件夹中,鼠标右键点击Git Bash Here

2、建立本地仓库

执行命令git init        #会生成.git隐藏文件夹,存放相关信息

3、本地目录连接远程仓库

git remote add origin https://gitee.com/~~~/~~~.git        #远程仓库地址

4、上传到暂存区

git add .        #上传之前也可以在这个目录下添加一些自己的文件,待会能看到

5、从暂存区到本地仓库

 git commit -m "注释"        #注释中填写此次上传的备注

 6、上传到远程仓库

 git push origin master        #这里会让输入Git仓库的账号密码,待会介绍免密码上传

 7、查看上传的文件

 直接进入git仓库中就能看到刚刚上传的文件啦

8、再次提交代码

把文件拖到此目录下,在执行下4-6的操作就行啦,不过我们一般配合其他的编译器比如vsc、IDEA使用,其内置的Git工具可以很方便的执行,不用每次都输入命令行了,下面会介绍在vsc中如何快捷提交代码

(八)配置免密码登录

以gitee为例!github同理,小伙伴们自己探索一下呗

1、生成SSH公钥

ssh-keygen  -t rsa  -C "邮箱地址"         #连续三次回车出现图形表示成功

2、查看公钥并复制下来

cat ~/.ssh/id_rsa.pub        #第一种查看方式

 进入C盘用户目录中有个刚刚生成的文件 .ssh,在其中查看公钥        ##第二种查看方式

 3、粘贴公钥

到gitee的个人设置->安全设置->ssh公钥,确定即可,下次提交代码就不用输入账号密码了。

(九)克隆到本地

看到别人的开源项目非常棒,想拿来用怎么办?别急,一招搞定!

Git Bash中执行命令git clone https://gitee.com/~~~/~~~.git,看看自己的文件夹中是否多了一项呢,如下表示成功克隆

 

 

 (十)文件操作

选择性观看!

1、文件的4种状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道当前文件在什么状态,不然可能会提交不上(能看懂的尽量哦)

  • Untracked(未跟踪):此文件是我们新加入的,并没有加入git库中,通过git add状态变成staged的暂存状态(仔细阅读了前面部分的小伙伴一定没问题吧,也就是对第七部分的详解)
  • Unmodify(文件已入库,未修改):即版本库中的文件快照内容与文件夹完全一致。这种类型的文件夹有两种去处,如果他被他被修改,而变为Modified,如果使用git rm移出版本库,则成为Untracked为跟踪文件。
  • Modified:文件已修改,仅仅是修改,并没有进行其他操作。这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout 则丢弃修改过,返回到unmodift状态,这个git checkout即从库中取出文件,覆盖当前修改。
  • Staged(暂存状态):执行git commit则将修改同步到库中,这时库中的文件和本地的文件又变为一致,文件Unmodify状态执行git reset HEAD filenama取消暂存,文件状态为Modified

 2、查看文件的状态

git status        #查看该目录下所有文件的状态,以便我们执行相应操作

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

 3、忽略文件

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

只需要在主目录下建立“.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

比如我的.gitgnore文件

# Prerequisites
*.d

# Object files
*.o
*.ko
*.obj
*.elf

# Linker output
*.ilk
*.map
*.exp

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex

# Debug files
*.dSYM/
*.su
*.idb
*.pdb

# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf

(十一)如何在vsc中快捷提交代码

  1. 打开已经git好的文件夹

  2. 随便先写一个文件代码并ctrl+s保存

  3. 会看到在左侧的一个树杈上出现了一个下标

  4. 点击树杈,点击加号,表示提交到暂存区    相当于git add                                                                  

  5.  点击对号后表示要提交到本地仓库,会出现一个输入框,我们输入提交的信息,回车             相当于:git commit -m "注释"         

  6. 我们点击同步更改(相当于 git push  origin master )稍等片刻就提交到远程仓库啦

     (十二)常见错误分析及解决

 在代码提交过程中我最常遇到的就是下面这种情况,导致无法提交至远程仓库

问题原因:远程库与本地库不一致造成的,把远程库同步到本地库就解决了

 解决办法:执行命令git pull --rebase origin master

该命令的意思是把远程仓库中的更新合并到本地仓库中,--rebase的作用是取消掉本地仓库中刚刚的commit,并把他们接到更新后的版本库之中。出现如下图执行pull执行成功后,可以成功执行git push origin master操作。

 


文章到此就结束啦,如有不足或是错误之处还请多多指出。

创作不易,看到这儿就给个支持呗~~ ~

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晓晓的雨夜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值