[Git] 笔记 Ch2 上

Git 学习笔记的第二章节上集, 包括 取得Git保存库(Repository) 以及部分git的基础命令


取得Git保存库(Repository)

方法可分为两种,分别为”建立”以及”取得”

  • 建立:执行git init;可将目前文件系统下某一个folder建立git 保存库。
$ git init
  • 取得:执行git clone可将Git remote server上复制(Clone)到本地端。(以下以git hub上的项目为例)
$ git clone git://github.com/schacon/grit.git

此命令会建立一个grit目录来存放,如果要指定这个目录名称,可以将想要的本地端目录名称在命令后加上:

$ git clone git://github.com/schacon/grit.git mygrit

Git取得的是服务器端所有的数据复本。 该项目历史中所有文件的所有版本都在操作者执行过 git clone 后拉回来。若服务器的磁盘机损毁,使用者可使用任何一个客户端的复本还原服务器为当初取得该复本的状态

执行更新到Git保存库(Repository)

在git保存库中的文件可以分为几个状态,分别解释如下:

  1. 未追踪(Untracked ): 文件已被丢入到保存库中,但目前文件未被追纵
  2. 未修改(Unmodified):文件已被追纵,但未修改
  3. 已修改(Modified):文件已被修改,与git所记录的内容不同
  4. 已暂存 (Staged):经过Git add命令,Git暂存文件已与目前本地端保存库相同;staged的文件会在下次执行git commit 时正式认列其变化。

  • 检示文件状态
$ git status

追踪新增文件(由untrack进到staged)

  • $ git add test.txt (指定文件)
  • $ git add . (将所有异动文件加入stage) 

Note: 如果一个新文件被加入到git 后(git add .), 又针对该文件进行修改, 会发现:

该文件同时存在staged中,但也同时存在not staged (modified)的情况,此时对git来说其实有两份文件,一个是已经staged的text2.txt 及其当时执行git add时的内容,以及修改过后在local repository的文件。

忽略特定文件

可以在local repository下加入.gitignore这个文件,让git将该规则批配的文件默认当作不追踪。此文件撰写内容可如下:

# 注解,会被忽略。

# 不要追踪文件名为 .a 结尾的文件

*.a

# 但是要追踪 lib.a,即使上方已指定忽略所有的 .a 文件

!lib.a

# 只忽略根目录下的 TODO 文件。 不包含子目录下的 TODO

/TODO

# 忽略build/目录下所有文件

build/

# 忽略doc/notes.txt但不包含doc/server/arch.txt

doc/*.txt

# ignore all .txt files in the doc/ directory

doc//*.txt

检查文件变动

  • Git Diff : 不带参数的Git Diff 默认会比对目前工作目录(working directory)及暂存区域(stage area)的版本,然后显示尚未被存入暂存区(stage area)的变更 ,所以可以用来查看那些文件尚未被暂存。
  • Git Diff --cached : 可用--staged代替(于git 1.6.1后) 比对暂存区域(stage)及最后一次提交(commit)的差异;通常在commit 前执行,以确认即将commit的文件内容及其变化。

提交修改

  • Git Commit : 会叫出在config 下core.editor设定的文字编辑器来撰写该commit的comment 内容。
  •  Git Commit –m :直接在command上打上该次commit的comment内容。
$ git commit -m "for repository initial"
  • Git Commit –a: t自动将所有已被追踪且被修改的文件送到暂存区域并开始提交进程,让使用者略过git add的步骤。(但新增的文件并不会自动加入暂存,仍旧要执行git add)。

删除文件

Git –rm  $fileName :将文件从目录中移除,并且将此删除变动记录在暂存区

Rm $fileName: 纯碎将文件从目录中移除,Git会发现文件消失; 但此删除动作未认列至暂存区。

重新命名文件

$ git mv file_from file_to: 将文件执行更名并且直接认列至暂存区。

$ git mv README.txt README

此Git –mv命令等同于以下三行

$ mv README.txt README

$ git rm README.txt

$ git add README

Reference:

https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository

原文:大专栏  [Git] 笔记 Ch2 上


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11516436.html