当前位置:   article > 正文

最全Git 操作教程_git-core(1),循序渐进_gitcore

gitcore

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

1.Git简介

Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。而且集中式版本控制系统是必须联网才能工作。

Git是分布式版本控制系统,它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。

2.Git安装

(1)windows系统

打开Git官网下载安装程序,然后按照默认选项安装即可。

安装完成后,打开Git bash软件,弹出一个类似cmd的命令行窗口,证明安装成功。
在这里插入图片描述
安装完成后,需要进行设置,在命令行输入以下代码:

$ git config --global user.name "Your Name"
$ git config --global user.email "Email@example.com"

  • 1
  • 2
  • 3

顾名思义,这是设置你的名字和Email地址。

我们可以查看一下用户名和密码:

$ git config user.name
$ git config user.email

  • 1
  • 2
  • 3
(2)Linux系统

对于稳定版本的 Debian / Ubuntu,可以在shell输入以下代码:

$ sudo apt-get install git

  • 1
  • 2

对于Ubuntu,或者用 PPA 安装 Git

$ sudo add-apt-repository ppa:git-core/ppa 
$ sudo apt-get update
$ sudo apt install git

  • 1
  • 2
  • 3
  • 4

3.远程仓库准备工作

开始这部分之前,我们需要自行注册GitHub账号。而且,因为你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要设置:

(1) 创建SSH Key。在用户主目录C:\Users\Administrator\下,看看有没有 .ssh 目录,如果有的话,看此目录下有没有 id_rsaid_rsa.pub 这两个文件,如果有,直接跳到下一步。如果没有,打开Git Bash,创建SSH。如下图所示,创建成功。

$ ssh-keygen -t rsa -C "UserEmail@qq.com"

  • 1
  • 2

在这里插入图片描述
(2) 登陆 GitHub,打开 “settings”
在这里插入图片描述
然后点击"Add SSH and GPG Keys",再点击"New SSH Key"进行SSH Key 的创建,填上任意 Title ,把 id_rsa.pub 中的内容复制到Key文本框内:
在这里插入图片描述

4.创建版本库

版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改、删除,Git都能跟踪。

1.选择一个合适的地方,创建一个空目录:

$ mkdir java //创建一个名叫java的空目录
$ cd java //把java设置为当前目录
$ pwd //查看当前目录
/c/Users/Administrator/Desktop/JAVA/java

  • 1
  • 2
  • 3
  • 4
  • 5

如果使用Windows系统,要保证目录名不包含中文。

2.通过如下命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/JAVA/java/.git/

  • 1
  • 2
  • 3

这样Git就把仓库建好啦,我们可以看到在当前目录下多了一个 .git 的目录,这个目录是Git来跟踪管理版本库的。

5.将本地仓库添加到远程仓库

(1) 把文件添加到版本库

我们在 java 目录下编写一个 readme.txt 文件,用 git add 命令,把文件添加到仓库:

$ git add readme.txt

  • 1
  • 2

执行以上命令,没有任何显示。如果添加文件夹下所有文件,则运行:

$ git add .

  • 1
  • 2

(2) 用 git commit 命令,把文件提交到仓库:

$ git commit -m "wrote a readme file" //-m后面输入的是本次提交的说明,可以输入任意内容。
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+) //1 file changed:1个文件被改动(新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt内有两行内容)
create mode 100644 readme.txt

  • 1
  • 2
  • 3
  • 4
  • 5

(3) 运行 git status 命令,查看仓库状态:

$ git status //查看仓库当前的状态
On branch master
Changes not staged for commit: //没有文件将要被提交
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
   
   modified:   readme.txt
    
no changes added to commit (use "git add" and/or "git commit -a")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

(4) 想知道上次是怎么修改readme.txt 文件的,需要用 git diff 命令:

$ git diff readme.txt 
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system. //这一句是被删掉的
+Git is a distributed version control system. //这一句是新添加的
Git is free software.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

(5) 可以用 git log 命令进行查看之前提交的几个版本的readme.txt

$ git log //查看历史记录
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Mon Aug 16 10:47:00 2021 +0800
 
    the second time to modify
 
commit e475afc93c209a690c39c13a46716e8fa000c366
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Mon Aug 16 10:47:00 2021 +0800
 
    the first time to modify
 
commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Mon Aug 16 10:47:00 2021 +0800
 
    wrote a readme file

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

我们还可以加上 --pretty=oneline 参数:

$ git log --pretty=oneline
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL
e475afc93c209a690c39c13a46716e8fa000c366 add distributed
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file //一大串数字是 commit id ,而且每个人的都不一样。

  • 1
  • 2
  • 3
  • 4
  • 5

现在如果我们想把 readme.txt 文件退回到上一个版本,就可以使用 git reset 命令:

$ git reset --hard HEAD^ //HEAD表示当前版本,则HEAD^表示上一个版本,那么上上版本就是HEAD^^
HEAD is now at e475afc add distributed

  • 1
  • 2
  • 3

这时候用 cat 命令查看一下 readme.txt 的内容:

$ cat readme.txt //查看 readme.txt 文件的内容
Git is a distributed version control system.
Git is free software.//readme.txt //文件返回到了上一个版本。

  • 1
  • 2
  • 3
  • 4

现在想要回到最新的版本,还是使用 git reset 命令:

$ git reset --hard 1094a //这里不能用HEAD而必须使用 commit id ,因为最新版本在之前返回时已经被删除了,1094a就是最新版本的 commit id,可以在之前的代码中查到
HEAD is now at 83b0afe append GPL

  • 1
  • 2
  • 3

6.工作区和暂存区

工作区(Working Directory),之前创建的 java 文件夹就是一个工作区。

工作区有个隐藏目录 .git ,这个不算工作区,而是 Git 的版本库(Repository)。

版本库里面的 index(stage) 文件叫暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向 master 的一个指针叫做 HEAD。
在这里插入图片描述
前面我们提到过,如果我们想把文件添加到Git里面时,需要分两步:

第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区。

第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。(我们现在只有唯一一个分支 master,所以现在就是往 master 分支上提交更改)

实践一下,在 readme.txt 文件中加上一行内容:

Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.

  • 1
  • 2
  • 3
  • 4

然后在工作区新建一个 LICENSE 文本文档(任意内容)
使用两次 git add 命令分别把 readme.txt 和 LICENSE 都添加后,可以用 `git status 命令查看一下:

$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
 
    new file:   LICENSE
    modified:   readme.txt

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

再使用 git commit 命令把暂存区的所有修改提交到分支:

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

存区的所有修改提交到分支:

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
[外链图片转存中…(img-Ikn9PqRQ-1715719991110)]
[外链图片转存中…(img-fWCrDE0K-1715719991111)]

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/785494
推荐阅读
相关标签
  

闽ICP备14008679号