gti介绍及常用操作

93 阅读3分钟

git安装

在ubuntu上测试有没有安装,如下图说明未安装。

stu@stu-virtual-machine:~$ git 
Command 'git' not found, but can be installed with: 
sudo apt install git 
stu@stu-virtual-machine:~$

安装后查看版本,如下图说明安装成功。

stu@stu-virtual-machine:~$ git version 
git version 2.25.1 
stu@stu-virtual-machine:~$

Git 是一个分布式版本控制系统,用于高效地管理文件的版本变化。它最初是由 Linus Torvalds 为 Linux 内核开发的版本控制工具,现在已经成为软件开发领域最流行的版本控制工具之一。与传统的集中式版本控制系统(如 CVS、Subversion)不同,Git 的分布式特性使得每个开发者的本地计算机都拥有完整的版本库副本,包括代码的完整历史记录。


git基本概念

  • 四个工作区
  • git本地有三个工作域:工作区(working directory), 暂存区(stage/index), 资源库(repository)。如 果再算上远程服务器上的git仓库(remote directory)就可以分为四个工作域。
  • 其关系如下: Workspace: 工作区,就是你平时存放项目代码的地方
  • Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件 列表信息 -- Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数 据。其中HEAD指向最新放入仓库的版本
  • Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

工作流程

git工作的一般流程:

  1. 在工作目录中添加,修改文件
  2. 将需要进行版本管理的文件放入暂存区
  3. 将暂存区的文件提交到git仓库

文件的四种状态

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态 变为 Staged.
  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文 件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可 进入暂存staged状态, 使用git checkout 则丢弃修改过,返回到unmodify状态, 这个git checkout即 从库中取出文件, 覆盖当前修改
  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified

git基本命令

1.创建一个目录

stu@stu-virtual-machine:~$ mkdir myproject 
stu@stu-virtual-machine:~$ cd myproject 
stu@stu-virtual-machine:~/myproject$ ls -a 
. .. 
stu@stu-virtual-machine:~/myproject$

2.使用git add filename 添加文件到暂存区

stu@stu-virtual-machine:~/myproject$ ls 
main.c 
stu@stu-virtual-machine:~/myproject$ git add main.c

3..使用git reflog 查看对仓库的操作日志

stu@stu-virtual-machine:~/myproject$ git reflog 
f30d135 (HEAD -> master) HEAD@{0}: commit (initial): 创建main.c 
stu@stu-virtual-machine:~/myproject$

4.取出某次的现场信息,继续工作 :git stash pop "stash@{1}" ,默认是最近一次,如果有多个现场,也 可以加上编号"stash@{1}"指定获取某一个。不同分支的现场,应该回到对应分支再获取,否则会自动合 并现场到当前分支的工作区。