Git的结构、工作原理、基本指令

一、Git的结构

Git作为分布式版本控制系统,相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

二、Git的工作原理

通过维护一个有向无环图Object Graph来记录每个版本及相互关系,实现对版本的控制。其中有向弧A->B代表版本B的基础上修改得到了版本A。
通过在内存中开辟了一块区域(暂存区)并对区分文件状态(已修改、已暂存、已提交),实现隔离本地工作区与本地仓库。
git不同区域及交互命令
通过存储发生变化的文件而不是变化行(传统VCS的行为),实现版本更新。

三、Git的基本指令

1. git init

将当前文件夹初始化为一个Git本地仓库,当前目录下出现一个.git的目录(隐藏的),这个目录是Git来跟踪管理版本库的,不要手动修改这个目录里面的文件。
可以在最后添加路径参数,就会在指定路径初始化本地仓库。

2. git add xxx

将已修改的文件xxx添加到暂存区。
可以用.表示当前目录,即使用git add .命令可以将当前目录中所有已修改文件添加到暂存区,较常用。

3. git commit -m “xxx”

将暂存区中的文件提交到本地的仓库,并将本次提交命名为“xxx”,便于后续对每次提交区分。
若希望直接将本地工作目录中已修改的文件提交到本地的仓库,则命令行参数改为-a即可。

4. git push origin master

将本地仓库提交到GitHub。
注意,如果本地仓库是用git init自己建的,则需使用命令git remote add origin GitHub仓库链接(以.git结尾)来绑定到GitHub,否则GitHub也不知道你想提交到哪去;如果是用后文提到的clone操作,则已经是绑定好的了。

5. git status

显示当前目录中各个文件状态:
已修改未添加:Untracked;
已添加未提交:Changes to be committed.

6. git clone xxx

从远程仓库克隆⼀个指定仓库到本地。指定的xxx可以是本地⽂件系统或者由HTTP或SSH指定的远程路径。

7. git diff

⽐较⼯作区和暂存区的修改。
可以在最后加上HEAD,实现比较工作区和上一次提交的修改。

8. git checkout xxx

将接下来的指令(如git commit、git merge)均作用于xxx这个分支。
可以在xxx前加-b参数,用于新建名为xxx的分支。

9. git merge xxx

若当前执行操作的分支与xxx的LCA是当前执行操作的分支,则将当前执行操作的分支移至xxx。
若当前执行操作的分支与xxx的LCA不是二者之一,则创建新结点用于合并二者,并则将当前执行操作的分支移至新结点。

10. git branch

显示本地repo的所有分⽀。
可以在最后加上-d xxx的参数,可以删除xxx分支。

四、注

2-4指令笔者最常用,每次写完一小段实验代码就无脑执行这三步。
8-10指令是分支相关操作,附两张图作为实例便于理解:
1
2

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值