Git基本指令

简介: 1.什么是git 2.快速上手 3.分支 4.修改历史记录

 

目录

1.什么是git

2.快速上手

3.分支

        4.修改历史记录


1.什么是git

Git是一个分布式版本控制系统,用于跟踪和管理软件开发项目中的代码变更。它可以记录每个文件的修改历史,允许多个开发者同时协作工作,并提供回滚到历史版本、分支管理以及合并不同代码版本等功能。

使用Git可以轻松地在不同的开发环境之间共享和同步代码。它还提供了强大的分支功能,使得团队可以并行开发不同的功能或修复bug,并在完成后将它们合并到主要的代码库中。

Git的工作原理是通过创建一个本地代码仓库,开发者可以在本地进行代码的修改和提交。每个提交都被记录下来,并可以追溯到特定的作者和时间。开发者可以在本地创建分支,在不影响主代码的情况下进行实验和修改,然后将这些修改合并到主分支上。

除了本地仓库,Git还支持与远程仓库进行交互,例如GitHub或Bitbucket。这使得开发者可以将本地代码库推送到远程服务器上,与团队成员共享代码,进行协作开发和代码审核。同时,也可以从远程仓库拉取最新的代码更新到本地。

总的来说,Git是一种强大而灵活的版本控制系统,被广泛应用于软件开发领域,帮助开发者更好地管理和跟踪代码变更。

2.快速上手

在目标文件夹中打开gitbash

首先需要设置自己的名字与邮箱地址确保能够知道项目是谁更新的

1.git config --local user,name

2.git config --local user,emailimage.gif编辑

1.git init(初始化文件夹,让git跟踪你想让其控制的文件夹,对于对应文件夹只需要执行一次即可)

在当前文件夹创建一个隐藏文件夹.git

image.gif编辑

2.git status(用于显示当前代码库(仓库)的状态信息。它会告诉你有关代码库中文件的修改、暂存和提交状态的关键信息。)

如下中有untracked files说明文件并未存放到暂存区

image.gif编辑

3.git add

可以git add 单独文件也可以通过 git add --all将所有文件放入暂存区域

image.gif编辑

4.git commit -m ""

将文件放进存储区 并加以信息表明版本更新的内容

git commit -m "具体信息",在我这新创建了test.txt则描述信息为 create file

image.gif编辑

5.查看历史版本记录

git log

image.gif编辑

可以看到第一个版本具体日期 时间 作者 联系方式 还有版本的更新总结

着重理解git add 与git commit 区别

image.gif编辑

6.在修改文件后再更新版本,如果修改了文件内容(在txt文件里面加一个1)后,通过git status 可以看到现在文件状态

modified test.txt意味着文件已经发生更改,那么如果更改完成之后,只需要将其再次 git add 和git commit 一遍,再通过git log查看可以看到现在有两条记录,即两个半

image.gif编辑

6.在多版本下想要回溯到某个版本

那么如果多个版本下需要回溯到某个版本则需要通过 git checkout实现

image.gif编辑

 1). 解释一下@与^ ,首先每一个版本都有一个指针指着,一般就是指向头部即使最新的版本,那么@就是Head 而^number表示上number个版本,比如@^2回溯上两个版本,回到图中可以看到文件回到了刚刚创建的阶段

 2).回到原来版本 只需要git checkout HEAD  --test.txt即可

7.文件不小心删除的情况下想要回溯文件

直接用git checkout fileName

或者git checkout .全体恢复

image.gif编辑

image.gif编辑8.回到原来版本

如果

9.git blame

如果更新代码后出错,想要找到更新这代码的人就可以通过git blame查找是谁干的好事

10.删除最近的commit等等,这些可以通过后面的修改历史记录(git rebase)统一管理

3.分支

一般一个项目可能有多个方案,需要将每个方案完善后选出一个最优的,那么一般情况下会通过复制文件夹的方式,得到多个基础框架。但是这样操作非常不方便并且并不节省空间,但是git中的分支可以完美解决这些问题

1.什么是分支

类似于一棵树上的分叉,相同的数据就放在树根,只有不同的数据才会长出枝杈

2.创建分支

git branch name

image.gif编辑

可以看到一开始都是只有一个分支,即主分支,通过git branch cat 创建一个cat分支

那么cat分支与主分支目前文件里面都有test.txt,接下来就是实现分支不同

3.切换分支

git checkout branchName

image.gif编辑

切换到了cat分支 并创建了一个cat.txt

再回到主分支

image.gif编辑

4.分支的合并

git merge (branchName)

image.gif编辑

注意如果相同文件缺有修改不同则会发生冲突,比如test.txt在matser分支里为1,在cat分支里内容为空则合并时候会发生冲突

5.删除分支

git branch -d (branchName)

因为将cat 与master合并了,那么cat也就不需要了可以将其删除

image.gif编辑

6.git reflog 操作日志

由于git log只能知道项目的版本信息但是不知道其操作的日志

所以就有了reflog可以查看每一次的操作信息

image.gif编辑

7. 回到合并前

前面有提到,git log只能知道项目的版本信息但是不知道其操作的日志,所以我们需要通过git reflog 操作日志来进行回溯(注意reflog有时间期限)

通过git reset返回

git reset  id  --hard||mixed||soft

image.gif编辑

其中35be1b2是通过内容计算SHA-1得到的值,可以理解为其id(身份)

4.修改历史记录

如果想要修改比如版本的commit ,比如说因为一点点的修改就将其commit起来导致有大量的版本,那么真正比较重要的版本可能找起来就会很麻烦,所以通过git rebase -i id进行群管理

image.gif编辑

首先查看git log --oneline可以将版本信息简化,只保留版本留下的信息

git rebase -i 75151e9表明我想从create file这个版本开始到最新版本的管理,确定后会打开一个vim编辑器

首先可以看到第二行就是版本与其id 现在解释前面的pick

可以通过vim修改前面的pick对这条内容进行操作,pick表示保留这一条commit不做更改

而如果将pick删掉改为drop则表明删除这条内容

还有很多前缀,在下面#中都有表明前缀以及其作用

# Rebase 75151e9..35be1b2 onto 75151e9 (1 command)

#

# Commands:

# p, pick <commit> = use commit  -》保留

# r, reword <commit> = use commit, but edit the commit message-》修改内容

# e, edit <commit> = use commit, but stop for amending -》拆分为多个小commit

# s, squash <commit> = use commit, but meld into previous commit-》合并多个commit

# f, fixup <commit> = like "squash", but discard this commit's log message

# x, exec <command> = run command (the rest of the line) using shell

# b, break = stop here (continue rebase later with 'git rebase --continue')

# d, drop <commit> = remove commit

# l, label <label> = label current HEAD with a name

# t, reset <label> = reset HEAD to a label

# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]

# .       create a merge commit using the original merge commit's

# .       message (or the oneline, if no original merge commit was

# .       specified). Use -c <commit> to reword the commit message.

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5天前
|
开发工具 git
常用的git指令
常用的git指令
45 0
|
5天前
|
Java Shell 开发工具
Git快速入门+常用指令
Git快速入门+常用指令
34 0
|
5天前
|
安全 开发工具 git
三分钟学完Git版本控制常用指令
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
30 0
三分钟学完Git版本控制常用指令
|
5天前
|
Shell 开发工具 git
Git获取本地仓库及基础操作指令
Git获取本地仓库及基础操作指令
39 0
|
20小时前
|
开发工具 git
常规git指令速查表
【5月更文挑战第10天】`git`命令速查:常用工作流:创建-浏览-更改-还原-更新-分支-提交-发布。查看状态`git status`,历史记录`git log`。更多远程操作如`fetch`,`pull`,`push`,分支管理与标签使用等。
28 6
|
5天前
|
开发工具 git
完美解决git 执行git push origin master指令 报错command not found
完美解决git 执行git push origin master指令 报错command not found
32 0
|
5天前
|
Linux Shell 网络安全
Git全指令教程
Git全指令教程
98 1
|
5天前
|
缓存 开发工具 git
推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制
Git是一个分布式版本控制系统,它可以跟踪文件的修改、记录历史版本,并支持多人协作开发。
43 2
推荐收藏 | 【Git实战专题】「必坑宝典」带你深入剖析Git操作指令下的奥秘原理和运作机制
|
5天前
|
存储 数据可视化 前端开发
20个常用的 Git 指令用法
20个常用的 Git 指令用法
102 1
|
9月前
|
Linux 网络安全 开发工具
Git入门+常用指令
Git入门+常用指令
53 0

相关实验场景

更多