Git的简单介绍以及一些基础操作

什么是Git?

Git:是分布式版本控制和源代码管理系统,重点使用和管理代码的速度。
在进行操作之前,我们先了解一下相关术语:

  • Workspace:工作区 通过 git init 创建的代码库的所有文件但是不包括.git文件
  • Index/Stage:暂存区,也叫索引 通过git add ./*/XX/XXX 添加的修改,都是进入到暂存区,肉眼不可见,通过git status可以看到修改的状态
  • Repository:仓库区(或本地仓库),也叫存储库
  • Remote:远程仓库

基本的git工作流程如下,也是我们一般的操作步骤:

  1. 在工作目录中修改文件
  2. 暂存文件,将文件的快照放入暂存区域
  3. 提交更新,找到暂存区域的文件,将快照永久性存储到Git仓库目录

Git的三种状态:

  • 已提交(committed):数据已经安全的保存在本地数据库中
  • 已修改(modified):修改了文件但还没保存到数据库中
  • 已暂存(staged):对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中

Git的常见操作:

1.获取git仓库:
1.1 克隆现有的仓库:$ git clone url
也就是拉一个项目下到当前文件夹,比如我们在桌面使用该命令,就可以拉github的项目
1.2 在现有的目录中初始化仓库:$ git init
该命令将创建一个名为.git的子目录,该子目录下含有初始化Git仓库中所有的必须文件


2.检查当前文件状态
命令:$ git status
工作目录下每一个文件都是两种状态:已跟踪或未跟踪。

已跟踪:被纳入了版本控制的文件,在上一次快照中有他们的记录,在工作一段时间后,他们的状态可能处于未修改,已修改或已放入暂存区。
所有不是已跟踪的文件都是未跟踪的文件(Untracked files)

如果我们在一个刚拉下来的仓库里使用该命令,会发现以下信息,即所有已跟踪的文件在上次提交后都未被更改过。

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean

3.仓库里文件的相关操作
3.1 向文件写内容:$ echo > filename.filetype
如果没有这个文件,使用git status命令会看到一个新的未跟踪的文件,并且在该git仓库里会创建一个filename.filetype 文件
例如我们执行如下命令:$echo > text.txt $echo > ddd.rar 会发现我们的git仓库里多了一个 ddd.txt的文件
我们执行$ git status,会发现以下信息:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

		ddd.rar
        text.txt

nothing added to commit but untracked files present (use "git add" to track)

如果我们在 echo 后面写 ‘text’ 可以看到我们的text.txt里面多了text内容

3.2 跟踪新文件:

$git add filename.filetype

对上面两个文件执行该命令,在查看文件状态:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   ddd.rar
        new file:   text.txt

3.3 暂存已修改的文件:
一般出现在Changes not staged for commit下面,说明已跟踪文件的内容发生了变化,但还没放到暂存区。如果暂存则需要$git add,该命令是一个多功能命令:前面说的开始跟踪新文件,或者把已跟踪的文件放入缓存区,还能把有冲突的文件标记为已解决的状态等。
我们对前面说的text文件里面随便加一条信息,然后再查看文件状态:

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   ddd.rar
        new file:   text.txt

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:   text.txt

我们发现text.txt即出现在绿色(暂存区)又出现在红色(未暂存区),这是因为git暂存了运行$ git add命令时的版本,如果现在提交,README.md不是运行git commit时在工作目录中的当前版本所以运行了git add之后又做了修订的文件,需要重新运行git add把最新版本重新暂存起来。
使用$git status -s可以使输出的状态变得简短:

  • A:新添加到暂存区的文件
  • M:出现在右边便是改文件被修改了但是还没放入暂存区,靠左边表示被修改了以及放入暂存区
  • ??:新添加的未跟踪的文件

3.4查看对已暂存和未暂存的修改:$ git diff
当前做的哪些更新还没有暂存,有哪些更新已经暂存的起来准备好了下次提交。这个命令本身只显示尚未暂存的改动,而不是上次提交以来所做的所有改动,所以有时候暂存了所有更新过的文件后,运行此命令什么也没有。

$ git diff
warning: LF will be replaced by CRLF in text.txt.
The file will have its original line endings in your working directory.
diff --git a/text.txt b/text.txt
index 8e27be7..06d6abe 100644
--- a/text.txt
+++ b/text.txt
@@ -1 +1,2 @@
 text
+abcd
\ No newline at end of file

我们提交更行,使用$ git add .,在此使用$ git diff,什么输出也没有了。
提交更新还有$ git commit,但是提交了好像就卡那里了,不知道什么鬼。

3.5移除文件
命令:$ rm filename ,我们对ddd.rar执行该命令:

$ rm ddd.rar
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   ddd.rar
        new file:   text.txt

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    ddd.rar
        

如果要删除之前修改过并且已经放到暂存区域的文件,则必须使用 -f来强制删除

3.6文件改名
命令:$ git mv file_from file_to
这一行相当于两行命令:$git rm file_from$ git add file_to

3.7查看提交历史

git log
git log -p 显示每次提交的内容差异
		-2 显示最近两次提交
		--stat 每次提交的简略信息
		--pretty,可以指定使用不同默认格式的方式来展示提交历史
		使用git log --pretty=oneline 将每个提交放在一行显示
						   =format 后面可以指定显示的记录格式
							   :"%h - %an, %ar : %s" 
							   :"%h %s"
						  =short 显示每次提交的作者
						  =full 显示每次的作者与提交者
						  =fuller 显示每次的作者与提交者以及日期

作者和提交者不一定一样:

  • 作者:实际做出修改的人
  • 提交者:最后将次工作成果提交到仓库的人

3.8取消暂存的文件
命令:git reset HEAD 文件名

3.9查看远程仓库
如果想查看已经配置的远程仓库服务器,可以运行该命令,这会列出你指定的每一个远程服务器的简写:

git remote 
git remote -v 显示需要读写远程仓库使用的Igt保存的简写以及与其对应的U

执行下面的命令,可以看到我们拉下来的仓库URL:

$ git remote -v
origin  https://github.com/Semineces/git.git (fetch)
origin  https://github.com/Semineces/git.git (push)

Git的工作流程:

  1. 将git的一个存储库克隆为工作副本
  2. 可以通过添加、编辑文件修改工作副本
  3. 如果有必要,可以让其他人员来一起更改、更新工作副本
  4. 在提交之前查看更改
  5. 提交更改,将更改推送到存储库
  6. 提交后,如果意识到某些错误并修改错误后,则将最后一个正确的修改提交并推送到存储库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值