Git学习笔记 | 来自缤纷多彩的灰

Git学习笔记 @ WHlcj | 2022-12-23T20:09:10+08:00 | 4 分钟阅读

这下终于弄懂git的基础使用了!(bushi)

常见说明

Git与SVN

  • SVN是集中式管理系统,而Git是分布式版本控制系统。
  • SVN的版本库是集中放在中央服务器的,而Git每个人的电脑都是一个完整的版本库。
  • SVN需要联网才能工作,对网络带宽要求较高,而Git工作时不需要联网。

Windows的一些说明

  • Git Bash是Unix与Linux风格的命令行。
  • Git CMD是Windows风格的命令行。
  • Git GUI是图形界面的Git,不建议初学者使用,尽量先熟悉常用命令。

Git配置

所有的配置文件保存在本地的.gitconfig文件下。

查看配置 :

1
 git config -l  

查看系统配置 :

1
git config --system --list 

查看当前用户配置 :

1
git config --global --list  

设置邮箱 :

1
 git config --global user.email "xxx"  

设置用户名 :

1
git config --global user.name "xxxxxx"  

Mac下配置文件在User目录下,为隐藏文件,需要按下 command + shift + . 才能查看隐藏文件。

Git基本理论

Git本地有四个工作区域 :

  • 工作目录(Working Directory) : 就是你平时存放代码的地方。

  • 暂存区(Stage/Index) : 用于临时存放你的改动,保存即将提交到文件列表信息。

  • 仓库区(Repository或Git Directory) : 就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。

  • 远程仓库(Remote Directory) : 托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。

Git项目创建

本地仓库搭建 :

1
git init

克隆远程仓库 :

1
git clone url

克隆远程仓库后,默认就与之产生了联系,也就是本地有.git的信息以及连接信息,后面可以直接push上传代码!如果使用的是ssh协议还需本地的SSH密钥在远程库有效。 需要注意的是,如果通过下载zip文件解压到本地是没有.git这个文件的,也就是没有关联远程库。

Git文件操作

文件四种状态 :

  • Untracked : 未跟踪,此文件在文件夹中,但没有加入到Git库,不参与版本控制。通过git add .命令可将其状态变为staged。

  • Unmodify : 文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致。这种类型的文件有两种去处,如果它被修改,而变为Modified;如果使用git rm,则成为Untracked文件。

  • Modified : 文件已修改,没有进行其他操作。这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout filename则丢弃修改过,返回到unmodify状态。

  • Staged : 暂存状态,执行git commit将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为unmodify状态。执行git reset HEAD filename取消暂存,文件状态为modified。

查看文件状态 :

查看指定文件状态 :

1
git status filename

查看所有文件状态 : (untracked文件显示为红色)

1
git status

查看commit日志 :

1
git log

在untracked状态下查看修改的文件与原文件的不同 :

1
git diff filename

重要指令 :

添加所有文件到暂存区 :

1
git add .

提交暂存区中的内容到本地(-m表示提交信息) :

1
git commit -m "消息内容"

远程提交 :

1
git push

忽略文件 :

可以在项目根目录下创建.gitignore文件,并在其中添加要忽略的文件/文件夹名称。

如果是mac用户,建议第一次上传远程仓库之前都在.gitignore中加入.DS_store(系统自带的存储路径的文件)

配置SSH公钥及连接远程仓库

1.创建本地SSH密钥

1
ssh-keygen -t rsa

2.打开本地.ssh文件下的.pub文件,复制密钥信息粘贴在远程仓库。
3.以GitHub为例,通过帮助代码链接仓库 注意新创建一个文件夹和上传本地文件连接到远程库的区别

Git分支

1
2
3
4
5
6
7
8
9
git branch:                     列出所有本地分支。  
git branch -r:                  列出所有远程分支。  
git branch xxx:                 新建一个分支,但依然停留在当前分支。  
git checkout xxx:               切换到xxx分支
git checkout -b xxx:            新建一个分支,并切换到该分支。  
git merge xxx:                  合并指定分支到当前分支。  
git branch -d xxx:              删除分支。  
git push origin --delete xxx:   删除远程分支。  
git branch -dr xxx:             删除远程分支。