linux系统git常规操作

常用命令说明

命令命令说明
add添加文件内容至索引,暂存区
bisect通过二分法查找定位引入 bug 的变更。二分法:每次截取总数的一半寻找bug
branch列出、创建或删除分支
checkout检出一个分支或路径到工作区,-b 切换分支,分支不存在就创建
clone克隆一个版本库到一个新目录
commit暂存区上传到本地仓库
diff显示提交之间、提交和工作区之间等的差异,对比本地仓库和远程仓库差异
fetch从另外一个版本库下载对象和引用
grep输出和模式匹配的行,查找内容
init创建一个空的仓库
log显示提交日志,reflog
merge合并两个或更多开发历史
mv移动或重命名一个文件、目录或符号链接
pull获取并合并另外的版本库或一个本地分支,本地仓库拉去远程仓库代码
push更新远程引用和相关的对象
rebase本地提交转移至更新后的上游分支中
reset重置当前HEAD到指定状态 ,git reset --hard commit的值
rm从工作区和索引中删除文件,–cached 只从索引区删除,-f 删除暂存区和本地文件
show显示各种类型的对象
status显示工作区状态
tag创建、列出、删除或校验一个GPG签名的 tag 对象
常用操作示意图

1190037-20171130170959948-2117269594.png

文件的状态变化周期

1190037-20171130171009651-1964332055.png

添加文件跟踪

git add .

git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#    新文件:    README
#
---
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   README
#

文件会添加到.git的隐藏目录
[root@gitlab git_data]# tree  .git/
.git/
├── branches
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   └── update.sample
├── index
├── info
│   └── exclude
├── objects
│   ├── e6
│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│   ├── info
│   └── pack
└── refs
    ├── heads
    └── tags
由工作区提交到本地仓库
[root@gitlab git_data]# git commit  -m 'first commit'  
[master(根提交) bb963eb] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README
查看git的状态
[root@gitlab git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区

# On branch master
nothing to commit, working directory clean
提交后的git目录状态
[root@gitlab git_data]# tree  .git/
.git/
├── branches
├── COMMIT_EDITMSG
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-push.sample
│   ├── pre-rebase.sample
│   └── update.sample
├── index
├── info
│   └── exclude
├── logs
│   ├── HEAD
│   └── refs
│       └── heads
│           └── master
├── objects
│   ├── 54
│   │   └── 3b9bebdc6bd5c4b22136034a95dd097a57d3dd
│   ├── bb
│   │   └── 963eb32ad93a72d9ce93e4bb55105087f1227d
│   ├── e6
│   │   └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391
│   ├── info
│   └── pack
└── refs
    ├── heads
    │   └── master
    └── tags

删除文件

git rm --cached 文件名   //只从索引区删除

git rm -f 文件名     //删除暂存区和本地文件

重命名暂存区数据

没有添加到暂存区的数据直接mv/rename改名即可。

已经添加到暂存区数据

git mv 原名 新名字

查看历史记录

git log   #→查看提交历史记录

git log -2   #→查看最近几条记录

git log -p -1  #→-p显示每次提交的内容差异,例如仅查看最近一次差异

git log --stat -2 #→--stat简要显示数据增改行数,这样能够看到提交中修改过的内容,对文件添加或移动的行数,并在最后列出所有增减行的概要信息

git log --pretty=oneline #→--pretty根据不同的格式展示提交的历史信息

git log --pretty=fuller -2 #→以更详细的模式输出提交的历史记录

git log --pretty=fomat:"%h %cn"  #→查看当前所有提交记录的简短SHA-1哈希字串与提交着的姓名。

使用format参数来指定具体的输出格式

格式说明
%s提交说明。
%cd提交日期。
%an作者的名字。
%cn提交者的姓名。
%ce提交者的电子邮件。
%H提交对象的完整SHA-1哈希字串。
%h提交对象的简短SHA-1哈希字串。
%T树对象的完整SHA-1哈希字串。
%t树对象的简短SHA-1哈希字串。
%P父对象的完整SHA-1哈希字串。
%p父对象的简短SHA-1哈希字串。
%ad作者的修订时间。

还原历史数据

Git服务程序中有一个叫做HEAD的版本指针,当用户申请还原数据时,其实就是将HEAD指针指向到某个特定的提交版本,但是因为Git是分布式版本控制系统,为了避免历史记录冲突,故使用了SHA-1计算出十六进制的哈希字串来区分每个提交版本,另外默认的HEAD版本指针会指向到最近的一次提交版本记录,而上一个提交版本会叫HEAD,上一个版本则会叫做HEAD,当然一般会用HEAD~5来表示往上数第五个提交版本。
git log        //查看历史提交数据的commit数值

git reset --hard commit数值

还原未来数据

git reflog    //查看未来历史更新点
git reset --hard commit数值

标签使用

在git push 之前打标签即可
git tag v1.0      //当前提交内容打一个标签(方便快速回滚),每次提交都可以打个tag。

git tag           //查看当前所有的标签

git show v1.0     //查看当前1.0版本的详细信息

git tag v1.2 -m "version 1.2 release is test"  //创建带有说明的标签,-a指定标签名字,-m指定说明文字

git tag -d v1.0    //我们为同一个提交版本设置了两次标签,删除之前的v1.0
git reset --hard HEAD^ //回滚到上一个版本

git reset --hard HEAD^^  //回滚到上两个版本

git reset --hard HEAD~5   //回滚到五个版本之前

git reset --hard e9ed8b38a    //使用commit值回滚

git reset --hard V1.0    //使用标签回滚

对比数据

git diff可以对比当前文件与仓库已保存文件的区别,知道了对README作了什么修改后,再把它提交到仓库就放⼼多了。
git diff README
git diff --name-only HEAD HEAD^
git diff --name-only head_id head_id2
  • 27
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 为了下载Linux 0.01源代码,您可以按照以下步骤操作: 1. 打开网站https://mirrors.edge.kernel.org/pub/linux/kernel/Historic/old-versions/,这是Linux内核历史版本存档机构的官方网站。 2.在该页面中,您会看到历史版本的Linux内核。单击“0.01”版本。 3.页面将带您到下载页面的列表。在这里,您可以找到内核源代码和补丁代码的下载链接。 4.单击要下载的文件链接。该文件将开始下载。 5.下载完成后,您将需要解压缩文件。您可以使用常规Linux解压工具进行解压。 6.一旦完成解压缩,您就可以开始研究Linux 0.01内核代码了。 总的来说,Linux 0.01是Linux内核历史上重要的版本。这个版本包含有限的功能,但它为其他版本的Linux内核奠定了基础。因此,研究其源代码是任何想要了解Linux的人的重要一步。 ### 回答2: 在互联网上,可以找到Linux 0.01的源代码的下载链接。下载源代码之前,我们需要安装一个Git工具,即下载并安装Git客户端。 在命令行窗口中输入以下命令来克隆Linux 0.01的源代码: git clone git://github.com/mirror/linux-0.01.git 该命令将在当前目录下创建一个名为linux-0.01的文件夹,并将Linux 0.01的源代码克隆到该文件夹中。此时,我们已经将Linux 0.01的源代码下载到了本地。 如果我们想要更新源代码,只需要打开命令行窗口,进入linux-0.01文件夹,然后输入以下命令: git pull origin master 该命令将拉取最新的源代码,并将其合并到我们的本地副本中。这使得我们可以始终保持Linux 0.01最新的版本。 值得注意的是,Linux 0.01已经非常老了,并且已经被Linux社区放弃了,因此它不再处于开发和维护状态。如果您想学习Linux内核,我们建议您下载最新的Linux内核源代码,这将帮助您更好地了解Linux操作系统的最新开发和维护状态。 ### 回答3: Linux 0.01是Linux操作系统最初的版本,它提供了Linux操作系统最基本的功能。如果您想要深入学习Linux操作系统的内核,那么下载Linux 0.01源码是一个非常好的选择。 下载Linux 0.01源码可以让您了解Linux操作系统最初版本的工作原理、设计思路和实现方式。它是学习Linux内核理论知识的好材料,也是学习操作系统底层原理的重要资源。 要下载Linux 0.01源码,您可以在GitHub上搜索“Linux 0.01”,或者在Linux内核官网上查找相关链接。下载源码之后,您可以使用gcc编译器进行编译和运行,学习其中的内核设计和实现方式。 需要注意的是,Linux 0.01是一个非常早期的版本,它的代码可能存在一些缺陷和安全隐患,因此在进行学习和实践的时候需要注意安全问题,建议不要在生产环境中使用。 总之,下载Linux 0.01源码是初学者学习Linux操作系统内核的一个很好的途径,希望能对您的学习有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值