学习视频

笔记资料

Git简明指南

Git历史

Git是一个开源的分布式版本控制系统

当下最流行的版本控制工具

版本控制

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

作用:

  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,同时降低人为错误
  1. 本地版本控制

    记录文件每次更新,对版本快照,记录补丁信息

  2. 集中版本控制

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

  3. 分布式版本控制

    不会因为服务器损坏或网络问题,造成不能工作的情况

    每个人拥有全部代码,有安全隐患

Git安装

git官网:http://git-scm.com/downloads

镜像:https://npm.taobao.org/mirrors/git-for-windows/

卸载:反安装即可

  • 清理环境变量

  • 卸载

安装

  • 下载软件安装包
  • 默认安装
  • 右键看到对应程序

Git Bach:Unix与linux风格命令行,使用最多、推荐最多

Git CMD:Windows风格命令行

Git GUI:图形化Git,不建议新手使用

基本的Linux命令

cd:改变目录,直接cd进入默认目录

cd..:退回上一个目录

pwd:显示当前所在的目录路径

ls:列出当前目录中的所有文件,ls(ll)更详细

touch:新建一个文件,touch index。.

rm:删除一个文件

mkdir:新建一个目录,新建文件夹

rm -r:删除一个文件夹rm-r src 删除src目录 rm -rf f表示根,删除-rf,删除所有

mv:移动文件,mv index.html src 移动index文件到src目录下

reset:重新初始化终端,清屏

clear:清屏

history:查看命令历史

help:帮助

exit:退出

git config -l:查看配置

git config —system —list 系统配置 Git\etc\gitconfig

git config —global —list 用户配置 C:users\Adminstrator\.gitconfig

Git基本理论

  • 工作区(Workspace):平时存放项目代码的地方。
  • **暂存区(Stage/Index):**暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列 表信息
  • **版本库(Repository):**又称本地仓库,这个不算工作区,而是 Git 的版本库,里面有你提交到所有版本的数据。
  • 远程仓库(Remote):托管代码的服务器github、gitee
image-20230306135917942
img

创建仓库

# 使用当前目录作为 Git 仓库,我们只需使它初始化。
git init

克隆远程仓库项目,相当于SVN导出项目

git clone <url>

Git文件操作

文件四种状态

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过git add状态变为staged
  • Unmodify:文件已经入库,未修改,版本库中的文件快照内容与文件夹中一致。这种文件如果被修改,变为Modified。如果使用git rm移除版本库,则变为Untracked文件。
  • Modified:文件已修改,仅仅是修改,并没有进行其他操作。可以通过git add进入暂存staged状态,使用git checkout则丢弃修改,返回unmodify
  • Staged:暂存状态,执行git commit修改同步到库中,这是库中文件与本地文件变为一致,文件unmodify状态。执行git rest HEAD filedname取消暂存,文件状态为modeified。
# 查看指定文件状态
git status [filename]
# 查看所有文件状态
git satus
# 添加所有文件到暂存区
git add .
# 提交暂存区数据到本地
git comit -m “消息内容”
# 提交暂存区文件到远程
git push

忽略文件

*.txt 		# 忽略所有.txt结尾文件
!lib.txt 	# 忽略所有.txt结尾文件,但lib.txt除外
build/ 		# 忽略build/目录下所有文件
/temp 		# 仅忽略项目根目录下的TODO文件,不包括其他目录的temp
doc/*.txt 	# 忽略某一文件夹下的文件

使用码云

设置本机SSH公钥,免密码登录

ssh-key #默认存放位置C:\Users\MPI_1070\.ssh
# 找到放置位置
git clone 

本地项目复制到git仓库文件夹,或者git仓库文件内容复制到项目文件

git add. # 添加所有文件到暂存区
git commit -m “消息内容”
git push # 提交到远程仓库

使用Github

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]