Git

Git学习笔记

Git学习笔记

Posted by xv_rong on August 11, 2021

Git

Git 介绍

免费,开源, 分布式,版本控制

分布式版本控制工具 VS 集中式版本控制工具

集中式:CVS, SVN, VSS 有一个中央服务器,修改在中央服务器中

分布式:Git 解决单点故障,版本控制在本地进行。每个客户端都保整个项目,更加安全。

Git 工作机制

工作区 -> git add -> 暂存区 -> git commit -> 本地库 (-> git push -> 远程库)

本地库上生成历史版本,无法删除历史版本

Git 和 代码托管中心

代码托管中心就是 远程库

  • 局域网: GitLab

  • 互联网: GitHub, Gitee

Git 常用命令

命令名称 作用
git config –global user.name 初始化用户签名
git config –global user.mail 初始化用户签名
git init 初始化本地库
git status 查看本地库状态
git add 添加到暂存区
git commit -m ‘' 提交到本地库
git reflog 查看历史记录
git reset –hard 版本穿梭
git config –global init.defaultBranch 设置初始化仓库时,默认分支名
git config -branch -m 修改分支名

设置用户签名

git config --global user.name <your name>
git config --global user.mail <your mail>
cat ~/.gitconfig # 查看配置文件
git config --global -l # 查看配置文件

作用是区分不同的操作者身份,Git首次安装必须设置一下用户签名,否则无法提交代码。

这里设置用户签名和将来登陆GitHub的帐号没有任何关系。

初始化本地库

git init

查看本地库状态

git status

添加暂存区

git add <your file> # . 代表所有文件

从暂存区中删除

git rm --cached <your file> 

提交本地库

git commit -m 'log'

查看版本信息

git reflog # 简要信息
git log # 详细信息

版本穿梭

git reset --hard <Version number>

底层逻辑是移动指针

Git 分支

命令名称 作用
git branch 创建分支
git branch -v 查看分支
git checkout 切换分支
git merge 把指定的分支合并到当前分支上

分支特性

  1. 同时推进多个任务
  2. 如果一个分支开发失败,不影响其他分支

查看分支

git branch -v

分支创建

git branch <branch name>

分支转换

git checkout <branch name>

分支合并

合并分支只会改变当前分支。

git merge <branch name> # 合并到当前分支上

代码合并冲突解决

冲突原因:两个分支对同一个分件同一个位置有两套不同的修改

合并过程中不能进行部分提交

Git 团队内协作机制

团队内协作

跨团队协作

GitHub

命令名称 作用
git remote -b 查看当前所有远程地址别名
git remote add <别名> <远程地址> 创建别名
git push <别名> <分支> 推送本地分支上的内容到远程仓库
git clone <远程仓库> 将远程仓库中的内容克隆到本地
git pull <别名> <远程分支名> 将远程仓库对应分支最新内容拉下来后与本地分支直接合并

创建远程库

git remote -v # 查看所有远程地址别名
git remote add <别名> <远程地址> # 创建别名

代码推送 Push

git push <别名> <分支>
git push -u <别名> <分支> # 如此运行后,设置了默认的别名和分支

代码拉取 Pull

git pull <别名> <分支>

代码克隆 Clone

git clone <url> 
  1. 拉取代码
  2. 初始化本地库
  3. 创建别名

SSH免密登陆

ssh-keygen -t rsa -C xvrong # 生成密钥

配置.ignore

配置全局的.ignore

在~/.gitconfig中添加如下内容

[core]

​ excludesfile = <.ignore address>

Gitee

创建远程库

码云链接GitHub进行代码的复制和迁移

GitLab

GitLab服务器的搭建和部署