Git&GitHub

版本控制系统(Version Control System)简称VCS,是一种记录若干文件内容变化的系统,其可对任意类型的文件进行管理(流文件不记录改动内容,仅记录大小变化)

集中式版本控制系统(CVCS)的代表为SVN、分布式版本控制系统(DVCS)的代表为Git

Git介绍

Git官网:Git是最先进的DVCS,其跨平台支持Windows、Linux和MacOS

git --version		# 查看git版本(安装方式见Git官网)
							>>>git工作原理<<<
工作区:存放被管理文件的项目目录						远程仓库
	↓  追踪文件				     提交文件	 			↑  push
暂存区:临时存放被修改文件的区域    --------->    git本地仓库:用于存放提交记录

Git配置

1.初始配置

配置文件(.gitconfig):位于当前所使用的系统用户的用户根目录下

# 配置/修改提交人姓名
git config [--global] user.name <user_name>
# 配置/修改提交人邮箱
git config [--global] user.email <user_email>
# 查看git配置信息
git config --list

2.仓库构建

说明:仓库初始化后会自动在当前目录下生成一个隐藏文件夹(.git目录)

# 初始化git本地仓库
git init

3.忽略清单

忽略清单:执行Git命令时会自动忽略清单文件中指定的文件/目录

# 在项目根目录下创建忽略清单文件(.gitignore)
touch .gitignore
# 向忽略清单文件添加不需要被管理的文件名和目录名
vi .gitignore
1 node_modules
2 test.html
~
项目目录结构
	|- .git ==================================== 本地仓库
	|- .gitignore ============================== 忽略清单

Git使用

1.提交命令

# 查看文件状态
git status
# 追踪文件(将工作区文件提交到暂存区)
git add <file_list>
# 提交文件(将暂存区文件提交到git本地仓库)
git commit -m <commit_message>
# 查看历史提交记录
git log

2.撤销命令

# 撤销工作区文件的修改(用暂存区文件覆盖工作区文件)
git checkout <file_name>
# 删除暂存区文件(不删除工作区同名文件)
git rm --cached <file_name>
# 清空暂存区、工作区的内容和提交记录,然后使用git仓库中的内容覆盖暂存区、工作区和提交记录的内容
git reset --hard <commitID>

3.分支管理

Git分支类似于时间线,每条提交记录都是分支上的一个时间节点,且分支间互不影响
主分支(master):首次向git仓库中提交更新记录时自动产生的一个分支,用于生产使用
开发分支(develop):基于主分支上某一时间节点创建的分支,用于开发使用
功能分支(feature):基于开发分支上某一时间节点创建的分支,作为开发具体功能的分支

# 查看分支(当前分支的名称前带有"*")
git branch
# 创建分支(在当前分支上创建新分支)
git branch <new_branch_name>
# 切换分支(切换分支时必须保证暂存区为空)
git checkout <target_branch_name>
# 合并分支(需先切换到待合并分支的父分支上)
git merge <child_branch_name>
# 删除分支(分支被合并后才允许删除,强制删除请将参数"-d"改为"-D")
git branch -d <branch_name>

# 快捷方法
git checkout -b <new_branch_name>  # 在当前分支上创建新分支并切换到新分支上

4.暂存更改

说明:暂存更改机制独立于分支,恢复改动时应看准分支,否则会将临时存储的内容保存到其他分支上

# 存储临时改动(会清空缓存区)
git stash
# 查看临时存储列表
git stash list
# 恢复改动(适用于临时存储的分支只有一个时)
git stash pop
# 恢复改动(适用于临时存储的分支为多个时,将指定的内容恢复到当前分支)
git stash apply stash@{...}

Git托管

1.配置远程仓库

说明:常用代码托管仓库有Github(国外)Gitlab(国外)Gitee(国内),操控远程仓库的方法一般有两种,第一种为HTTP地址(可直接使用,但每次提交需手动提交),第二种为SSH地址(需先配置密钥,每次提交会免密登录,配置方法如下)

# 通过Git命令生成密钥文件(输入如下命令后回车3次即可)
ssh-keygen
# 将生成的位于当前用户根目录下的".ssh"目录下的公钥文件(id_rsa.pub)内容添加到远程仓库的SSH and GPG keys中,私钥文件不动

2.远程仓库命令

说明:当两个提交请求修改了同一文件的同一内容时会出现提交冲突问题,此时需手动修改

# 为远程仓库地址指定别名(HTTP仓库地址)
git remote add <another_name> <address_url>
# 将远程仓库克隆到本地(本地可无仓库)
git clone <another_name | address_url>
# 将远程仓库最新内容同步到本地仓库(本地需有同名仓库)
git pull <another_name | address_url> <branch_name>
# 向远程仓库推送(指定参数"-u"后会自动记录提交地址和分支,下次提交时直接使用"git push"即可)
git push [-u] <another_name | address_url> <branch_name>

# 向远程仓库推送新分支(需先切换到被推送的分支)
git push [-u] origin <this_branch_name>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值