命令行配置Github\Gitlab工程

git的仓储(repository)分为远程repository和本地repository。个人通过本地的repository进行开发和版本管理,本地包括working directory, staging area, local repo;多人开发的工程可通过远程repository进行协作(如github网页可以查看的远端git,或者本地服务器搭建的gitlab),整体的关系如下图所示:

 我们先讲解如何创建local repository以及进行代码管理,随后,讲解本地repo和远端repo如何进行互动操作(如何下载remote repository到local repository,以及如何将本地repository贡献到远程repository)。

查看帮助格式如下:

git clone --help
git commit --help

一、本地repsitory管理

1. 概述

熟练进行git代码管理需要了解git的一些一本概念:

首先,了解git的data model, 包括blob object (文件), tree object(结构)和commit object(时间)

  • blob object表示具体的文件的对象,在每次通过git add将working directory的文件添加到staging area时生成,实际就是对应着文件的实体 ;
  • tree object记录着每个文件夹里包含的blob object,即目录的层级关系,每个目录对应着一个tree object;
  • commit object为每次提交产生的对象,记录着提交指向的tree object以及commit的parent节点(即上次提交生成的commit object)。

备注:当一个文件或目录结构发生更新时,不仅会被更新的blob object和tree object会新建,commit后其祖先节点上的所有tree object都会生成新的tree object(因为tree object记录了包含的对象的checksum,一个object的改变会导致其checksum改变,进而改变其父节点的tree object记录的object的checksum的改变,而tree object记录的信息的改变也就改变了tree object本身的checksum,以此类推)。

object文件统一存储在.git/objects中。

详见:https://medium.com/hackernoon/https-medium-com-zspajich-understanding-git-data-model-95eb16cc99f5

为了查看时间维度的commit object的checksum值,可以使用如下命令:

git log

通过如下命令可以查看commit object中记录的内容(包含指向的tree object的checksum值):

git cat-file commit [commit id in git log]

通过commit object记录的tree object id可以进一步查看tree object记录的内容:

git ls-tree [tree object id]

结合tree object指向的blob id,可以通过如下命令查看blob object的内容。

git cat-file blob [blob id]

随后,掌握git的三个区域:working directory, staging area, and the repository。注意:这个三个区域并不对应着三个不同的实体区域来存储不同版本的blob object\tree object实体。真实的情况是:所有不同版本的blob object\tree object都存储在.git/objects中,同时,使用使用.git/index文件来记录working directory, staging area, and the repository中对应的blob object\tree object的版本(checksum值),基于index文件记录的object版本的信息到.git/objects中找对应版本的object来快速构建不同的版本工程。

详见:

https://konrad126.medium.com/understanding-git-index-4821a0765cf

为了显示working directory <=> staging area <=> 本地repository之间的差异,可以使用如下命令:

git status

2. 配置本地git

全局配置:

git config --global user.name "YLY"
git config --global user.email "yly@163.com"

生成本地repository:

cd your_folder_to_upload
git init  //本地仓储初始化,在文件夹中生成了 “.git”隐藏文件,用于接下来存储git的信息。其中,.git/object/里面包含了blob object, tree object, commit object;.git/refs/包含branch的信息;./git/index存储working directory, staging area, and the repository的文件版本信息

3. working directory/staging area/local repo之间的操作

将working directory文件同步到staging area:

git add .   //同步working directory的文件到staging area, “.”表示添加文件夹下的所有文件

另一方面,若开发过程中发现工作区本版出现问题了,想撤销工作区文件的修改,可以把文件恢复到staging area的状态,方法是:

git checkout -- <file>

staging area文件更新到本地repository:

git commit -m "Initial commit"  // 文件存储到版本库区 (Commit History), -m表示输入提交的信息

备注:修改最新的commit message:

git commit --amend

参考:Gi

### 配置 VSCode 连接到 GitLab 为了使本地开发环境能够高效地与GitLab协同工作,需先确保本机可通过SSH无密码访问GitLab服务器[^2]。 #### 创建并配置 SSH 密钥对 在本地计算机生成一对SSH密钥,并将其公钥添加至GitLab账户的安全设置中。这一步骤完成后,后续所有的克隆、拉取以及推送操作均无需再手动输入用户名密码。 #### 克隆现有项目或初始化新仓库 当通过SSH协议获取到目标项目的URL后,在命令行工具里利用`git clone URL`指令完成源码下载;如果是初次创建的新工程,则要先建立.git目录结构并通过`git init`启动版本控制系统。 ```bash # 初始化一个新的Git仓库 $ git init ``` #### 添加远程地址并与之关联 假设已经有一个现成的GitLab存储库等待同步,那么可以使用下面这条语句指定远端名称(通常是'origin')及其对应的网络位置: ```bash # 将当前本地仓库绑定到名为 'origin' 的远程仓库上 $ git remote add origin ssh://git@gitlab.example.com/namespace/project-name.git ``` 确认已成功注册该条记录的方法是运行`git remote -v`查看所有已知的外部链接列表[^1]。 #### 安装并启用必要的扩展插件 前往Visual Studio Code官方市场寻找专门针对Git服务设计的功能模块——例如GitLens或是GitHub Pull Requests and Issues等,它们能极大地方便开发者追踪变更历史、管理分支关系乃至发起Pull Request等活动[^4]。 #### 提交更改前的操作指南 编辑完毕待处理文档之后,记得及时标记新增加的内容以便纳入下一轮提交范围之内(`git add .`),撰写简洁明了的日志摘要说明改动意图(`git commit -m "message"`)[^5]。 最后借助于图形界面中的Source Control面板或者终端内的简单命令实现向云端推送最新状态更新: ```bash # 推送本地master分支上的变动给上游默认跟踪的目标(origin/master) $ git push -u origin master ``` 以上就是关于怎样让VSCode顺利接入GitLab平台的一系列指导建议。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuyuelongfly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值