likes
comments
collection
share

Git的简单使用

作者站长头像
站长
· 阅读数 6

Git的简单使用

众所周知,Git官方给的定义是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。那么要学习Git我们就应该知道什么是版本控制

版本控制

开发的时候,一般情况我们并不能一次就完成项目,而是会一次又一次的修改源代码,这样就形成了一个又一个迭代的版本,有时候可能我们并不满意最新的修改版本,而需要退回上一个版本,这时候就需要版本控制工具的帮助。版本控制简而言之就是对开发过程中各种改动的记录,备份以及恢复。

版本控制多用于多人开发,是多人协调开发必不可缺的一个工具!

常见的版本控制工具

主流的版本控制工具有以下几种:

  • Git
  • SVN
  • CVS
  • VSS
  • TFS

版本控制分类

1.本地版本控制

记录文件每次的更新,可以对每个版本做记录,也可以是打一个补丁,适合用于个人。

Git的简单使用

2.集中版本控制SVN

所有版本数据都存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。

Git的简单使用

所有的版本都在服务器上,所以查看修改历史版本都需要联网,而且因为只放在一个服务器上,那么服务器损坏也就会失去所有数据,因此使用的时候通常会使用备份服务。代表产品:SVN,CVS,VSS等

3.分布式版本控制Git

所有版本信息仓库都同步到本地每个用户,这样就能离线查看版本历史。用户只需在本地提交更新,在有网络时push到对应服务器或者用户那里即可。这样牺牲一定的储存空间来保证每个用户都有所有版本历史的备份,只要有一个用户设备完好就能恢复所有数据。

Git的简单使用

Git环境配置

软件下载

在官网选择对应系统版本安装:git-scm.com/download/wi…(速度较慢)

建议使用镜像下载:npmmirror.com/package/git

Mac也可用brew install git来安装

软件安装

无脑下一步即可,安装位置建议放在自己的文件夹

如遇不可使用,可能时候未添加环境变量导致的

基本的Linux命令

  cd 改变目录
  cd . . 回退到上层目录
  pwd 显示当前所在的目录路径
  ls(ll) 列出当前文件夹下的所有文件
  touch 新建一个文件
  rm 删除一个文件
  mkdir 新建一个文件夹
  rm -r删除一个文件夹
  clear 清屏
  history 历史命令
  exit 退出
  # 是注释

更多命令可关注程序员编程录公众号,输入备忘手册获取,非推广!!!!只是宝藏资源分享

Git配置

查看配置git config -l

设置全局名git config --global user.name "rain-zyt"

设置全局邮箱git config -- global user.email "rain-zyt@zhm.com" #该邮箱仅作为身份识别,无需填真实

Git的简单使用

Git的项目搭建

常用指令

git pull 本地与服务器端同步

git fetch 相当于是从远程获取最新版本到本地,不会自动merge

git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来

git push (远程仓库名) (分支名) 将本地分支推送到服务器上

git checkout dev 切换到本地dev分支

git add [file name] 添加一个文件到git index

git commit -a 提交当前repos的所有的改变

本地仓库搭建

1、创建全新的仓库,在需要Git管理的项目的根目录下执行:

# 在当前目录新建一个Git代码库
$ git init

2、执行后可以看到,仅仅在项目目录多出了一个.git目录,关于版本等的所有信息都在这个目录里面。

克隆远程仓库

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

# 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]  

更多git命令,可在github.com/rain-zyt/re…下载

Git文件操作

文件的四种状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

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

查看文件的状态

#查看指定文件状态
git status [filename]
#查看所有文件状态
git status
git add .                  #添加所有文件到暂存区
git commit -m "消息内容"    #提交暂存区中的内容到本地仓库 -m 提交信息

忽略文件

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

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

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

参考资料

www.bilibili.com/video/BV1FE…

CodeSheep微信公众号

转载自:https://juejin.cn/post/7048607900549251103
评论
请登录