Git 学习笔记

什么是Git

Git是一种流行的版本控制系统(VCS)。使用版本控制系统可以记录文件和项目的内容变化,从而在需要时将文件或项目回退、差异比较等。

Git与其他VCS的区别

首先,Git直接记录文件快照,而不是记录差异比较。其次,几乎所有操作都是本地执行。再次,Git使用SHA-1散列保证文件完整性。最后,Git一般只添加数据,从而操作几乎完全可逆。

Git中的三种状态

Git中有三种工作区域:Git仓库、工作目录及暂存区域。从而有已提交、已修改及已暂存三种状态。在工作目录中修改文件即使该文件进入已修改状态,不受Git保护;而将已修改的文件添加到暂存区即进入已暂存状态;将暂存区内容提交后进入Git仓库中,进入已提交状态,此时文件便受Git保护,不再易于丢失。

Git的配置

Git有三个级别的配置:系统级配置 /etc/gitconfig、用户级配置 ~/.gitconfig或 ~/.config/git/config、仓库级配置 .git/config。三种级别优先级一次增加。可使用 git cofig 命令进行Git的配置。最基础的配置项为 user.name 及 user.email 。

获取Git仓库

使用 git init 命令初始化一个空仓库或使用 git clone 命令拷贝已存在的Git仓库。

Git中的文件状态

工作目录中的文件可能处于未跟踪或已跟踪(已暂存/已修改/已提交)状态。
使用 git add 命令,可以开始跟踪新文件、暂存已修改状态文件、将合并冲突文件标记为已解决。总之,git add 命令应理解为“添加内容到下一次提交中”。文件状态标记有 [ M]、[MM]、[M ]、[A ]、[??]四种,该标记由两位组成:左边的M表示已修改、右边的M表示已暂存、左边的A表示新添加到暂存区、两个问号表示未跟踪。使用 .gitignore 文件忽略未跟踪文件。

移动、删除

使用 git mv 命令进行改名操作、使用 git rm 命令进行删除操作。

撤销操作

可使用 git commit --amend 修改上次的提交快照、提交信息等。使用 git reset HEAD <file_name> 命令取消暂存。也可使用 git checkout – filename 命令从上次提交检出文件覆盖工作区中的文件。

远程操作

通过 git remote 命令进行远程仓库的添加、删除、查看等操作。通过 git fetch 命令从指定远程仓库获取数据。或使用 git pull 命令获取数据并合并于远程分支到当前分支。使用 git push 命令将本地分支推送到远程仓库。

标签

Git支持轻量标签和附注标签两种,其中轻量标签只是将提交校验和保存到一个文件中,没有其他信息。而附注标签是一个完整对象,与提交相似,含有打标签者的名字等信息。默认情况下 git push 命令不推送标签。使用 git tag 命令执行标签添加、删除等操作。

别名

使用git config 命令可以支持git操作的别名,简化输入。

Git分支

Git分支是一个包含指向提交对象的指针。分支创建可通过 git branch 命令完成。为了指示当前分支,包含一个HEAD指针指向当前分支。通过 git checkout 命令可检出并切换分支。由于使用了该模式,Git中分支的使用方便快捷。

Git分支合并

使用 git merge 命令可将指定分支合并到当前分支(操作HEAD指向的分支)。当合并到直接上游时,只需将当前分支指针“快进”到新的指针即可完成。在分叉的情况下,执行“三方合并”,若不存在合并冲突则产生一个新的合并提交到当前分支,若存在冲突则执行合并但需要手动提交。

远程分支

使用 git fetch 命令拉取远程分支并更新引用。使用 git push 命令将本地分支推送到远程分支。使用 git branch --set-upstream-to 命令设置跟踪分支(上游分支)。使用 git pull 命令拉取上游分支并合并到当前分支。

变基(rebase)

提取补丁并在分支上应用作为新的提交,而删除原有的提交。不要对除自己的仓库外有副本的分支执行变基操作,否则将使仓库变得混乱不堪。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值