澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

澳门新萄京官方网站:git录制笔记,具体学习G

2019-08-31 作者:澳门新萄京官方网站   |   浏览(139)

澳门新萄京官方网站 1

工作区(Working Directory):

配置git

git config --global user.name fcj
git config --global user.email fcj@test.com
git config --global color.ui true
git config --list
vim ~/.gitconfig

 1、创造新酒店  

澳门新萄京官方网站 2

正是Computer能看收获的目录,例如刚刚创造的learngit文件夹

创建repository

git init
git clone https://github.com/kennethreitz/requests.git

 

 

版本库(Repository):

加上提交文件

git status
git add code.py
git commit -m 'init commit'
git四个景况:working directory(专门的职业区)、staging area(cache或index)、history

 git init  

1.安装:

专门的学业区有叁个遮蔽目录.git,这几个不算职业区,而是Git的版本库。

查看git状态

git忽略文件:.gitignore
git status -s
  [][]表示staging area和working directory的改变
  [][M]地点修改没add
  [M][]add后没有commit
  [M][M]上次add未有commit,且地面已再一次修改
git add:从working directory到staging area
git commit:从staging area到history

 touch  test.txt

率先找到git的官方网站,内部有下载链接。

Git版本库中存了繁多事物,当中最关键的就是叫Stage的暂存区,还应该有Git为大家创设的首先个分支master,以及针对master的一个指南针——HEAD。

翻看文件差异

git diff:比较working directory和staging area
git diff --staged:比较staging area和history
git diff HEAD:比较working directory和history
简化git diff信息:git diff --stat

 git add --a

也足以用上面包车型客车,我的是win7的陆十三人系统:

前方大家把公文往Git库加多的时候,是分两步推行的:

撤消误操作

git reset:从history恢复到staging area
git checkout:从staging area恢复到working directory
git checkout HEAD:从history恢复到working directory、且恢复staging area
git commit -am 'add commit':从working directory同有时候add到staging area,并交给到history:
working directory和staging area:git add <===> git diff <===> git checkout
staging area和history:git commit <===> git diff --staged <===> git reset
history和working directory:git commit -am <===> git diff HEAD <===> git checkout HEAD

 git commit -m "fist commit"

能够在此间下载:Git-2.13.0-64-bit.exe链接:http://pan.baidu.com/s/1dFIOU1V密码:xky2

  1. 用git add把公文增多进去,实际上是加上到暂存区;

  2. 用git commit提交改换,实际上就是把暂存区的保有剧情交给到当前支行。

    g@g-PC MINGW64 /learngit (master)

    $ vi readme.txt

    g@g-PC MINGW64 /learngit (master)

    $ cat readme.txt

    Git is a distributed version control system.

    Git is free software distributed under the GPL.

    Git has a mutable index called stage.

    g@g-PC MINGW64 /learngit (master)

    $ touch LICENSE

    g@g-PC MINGW64 /learngit (master)

    $ cat LICENSE

    abc

    g@g-PC MINGW64 /learngit (master)

    $ git status # 查看景况

    On branch master

    Changes not staged for commit: # 修改了但未被提交

    (use "git add ..." to update what will be committed)

    (use "git checkout -- ..." to discard changes in working directory)

         modified:   readme.txt
    

    Untracked files: # 没有被加上过 (Untracked : 无路线的;无鞋的痕迹的,无脚踩过的印迹的)

    (use "git add ..." to include in what will be committed)

         LICENSE
    

    no changes added to commit (use "git add" and/or "git commit -a") # 没有改观且已被交给的文本

    g@g-PC MINGW64 /learngit (master)

    $ git add readme.txt

    g@g-PC MINGW64 /learngit (master)

    $ git add LICENSE

    warning: LF will be replaced by CRLF in LICENSE.

    The file will have its original line endings in your working directory.

    g@g-PC MINGW64 /learngit (master)

    $ git status

    On branch master

    Changes to be committed:

    (use "git reset HEAD ..." to unstage)

         new file:   LICENSE
    
         new file:   biubiu
    
         modified:   readme.txt
    

    g@g-PC MINGW64 /learngit (master)

    $ git commit -m "undestand how stage work" # Git的交给,是一并全体提交,而不能够单个提交

    [master 50b7574] undestand how stage work

    3 files changed, 4 insertions( ), 1 deletion(-)

    create mode 100644 LICENSE

    create mode 100644 biubiu

    g@g-PC MINGW64 /learngit (master)

    $ git status # 那一件事的暂存区已经干干净净 working tree clean

    On branch master

    nothing to commit, working tree clean

    git diff #是专门的学问区(work dict)和暂存区(stage)的可比

    git diff --cached #是暂存区(stage)和分支(master)的比较

删去和重命名文件

git rm old.py:从本土和staging area删除文件
git rm --cached code.py:从staging area删除文件,但保留本和姑件
git mv code.py code.go:重命名
  等价于:
  git rm --cached code.py
  mv code.py code.go
  git add code.go

 

下边是安装后的法力:

在Git中,用HEAD表示近来版本,也便是前卫的交付3628164...882e1e0(注意自己的交给ID和您的一定不等同),上多少个版本正是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个正如便于数不恢复生机,所以写成HEAD~100

暂存专门的学问区

git stash:最新修改放入抽屉
git stash list:查看抽屉内容
git stash pop:从抽屉中复苏

 最早化新货仓,在当前目录下由多个.git的目录,全体git须要的数额和财富都放在那一个目录中,在公开场面目录下添Gavin件后,须要经过git add 增多到文件追踪管理(增多到暂存区,数据存放在.git/index 目录索引,数据之中保存在.git/objects 中), git commit -m "提交认证备注" 提交的音讯会提交到数据仓库,数据提交到正式旅馆,具体保存在.git/objects 中,如以上提交会蕴藏贰个commit,tree ,blob 对象。

澳门新萄京官方网站 3

g@g-PC MINGW64 /learngit (master)
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
g@g-PC MINGW64 /learngit (master)
$ git reset --hard HEAD^ #回滚到上一个版本
HEAD is now at c3528d1 append GPL
g@g-PC MINGW64 /learngit (master)
$ cat readme.txt
Git is a version control system.
Git is free software.
Git is a distributed version control system.
Git is free software distributed under the GPL.


g@g-PC MINGW64 /learngit (master)
$ git reset --hard 932f121 #回滚到某一版本(版本号不用写全,Git会自动寻找)
HEAD is now at 932f121 del 2 rows
g@g-PC MINGW64 /learngit (master)
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.

commit对象

git log
git log --oneline
两种对象:commit、tree、blob
每种对象都有哈希值
git cat-file -t HEAD
git cat-file -p HEAD
git cat-file -t 对象哈希:查看对象类型
git cat-file -p 对象哈希:查看对象内容

 

git作用:能够用三个代码文件来表明具备的本子。他的规律是因而给各类版本拍快速照相的法门来囤积每一个文件。限制是不得不是txt文本文书档案。

查阅命令历史,以便回过了后头到今后版本

tree-ish表达式

git rev-parse HEAD
git rev-parse HEAD~
git rev-parse HEAD~4
git rev-parse master
git rev-parse master~
git rev-parse master~4:定位到commit
git cat-file -p master~4
git rev-parse master~4^{tree}:定位到commit下的tree
git rev-parse HEAD~4:code.py:定位到文件
git cat-file -p HEAD~4:code.py
git show HEAD~4:code.py
  git show <===> git cat-file -p

2、从现成仓Cook隆

 澳门新萄京官方网站 4

g@g-PC MINGW64 /learngit (master)
$ git reflog
932f121 (HEAD -> master) HEAD@{0}: reset: moving to 932f121
c3528d1 HEAD@{1}: reset: moving to HEAD^
932f121 (HEAD -> master) HEAD@{2}: commit: del 2 rows
c3528d1 HEAD@{3}: commit: append GPL
311bbf5 HEAD@{4}: commit (initial): wrote a readme file

创制和删除分支

git branch:列出全数支行
git branch tryidea:创造分支
git checkout tryidea:切换分支
git checkout master:切换回master
git branch -d tryidea:删除分支

 

上海体育场地正是bash的window。能够在中间输入指令。

合併分支

git checkout -b tryidea:成立并当即切换分支
分层提交后必须联合才得以去除
git checkout master
git merge tryidea
  Fast-forward
git branch -d tryidea
3-way merge:master也时有发生提交时

git clone  url

 

录制地址

深深通晓GIT
http://edu.51cto.com/course/1838.html

 


git clone git@github.com:torvalds/linux.git 

 2.创建

 

澳门新萄京官方网站 5

如从gitHub上克隆一份linux的源码,不只有是仿造最新版本的源码,还克隆了全数数据仓库的野史版本,各种文件的每贰个本子,那年立刻服务器github 产生故障,能够用本地数据仓库重新创立服务器上的库房。能够回复到从服务器克隆或最后更三回从服务器拉去的意况。在.git 目录中,已经保存了装有版本记录,当守田件夹即专门的学业目录的富有文件删除了,然后从中抽出最新版本的公文拷贝。

首先在 E:pythongitTUT 内右键,选择Git Bash Here,就能展开多少个在本路线下的bash窗口。

 

澳门新萄京官方网站 6

3、检查文件更新情形

澳门新萄京官方网站 7

   

 

    供给明确当前工作区和暂存区文件的意况,能够因此git status 命令。在工作区和暂存区的目录状态能够查阅。

安装顾客名:

 

git config --global user.name "longbiscuit"      ,这么些顾客名和信箱是在GitHub官方网站你和煦注册的顾客名和邮箱。

  git status

能够用  git config user.name  来检查输入的顾客名。

 

安装邮箱:

 On branch master  nothing to commit, working directory clean

git config --global user.email "blzhu@buaa.edu.cn"

 

澳门新萄京官方网站 8

当前在私下认可master 分支,当前工作目录和暂存区没有别的追踪的文件,也未曾另曾外祖父文提交后改成,也未尝新添,未被追踪的公文。

初始化:

 

git init

notepad test.txt

 会在目录下活动初阶化并扭转 .git文件夹,

notepad t.txt

澳门新萄京官方网站 9

 

展现全体的文件: ls -a

修改test.txt文件,新增加加叁个t.txt 文件,查看当前文件状态。

输入 open .git  后会自动张开这一个隐形的文件夹。但自己没打开,这一个先不管了,不首要。能够手动张开看看。

 

创制文件 1.py:touch 1.py

$ 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 di
#
#       modified:   test.txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       t.txt
no changes added to commit (use "git add" and/or "git commit -a")

澳门新萄京官方网站 10

 

但那时还未有增进到git管理库中(git是本地版本,github是互连网版本,用这么些客户端能够直接管制,也能够联网络传到互连网上)。

新增的公文t.txt 在未跟踪文件范围Untracked files 范围,必要通过git add 把改文件增加的暂存区,放入的本子跟踪管理。

自己争辩意况:git status**

 

 澳门新萄京官方网站 11

4、 添Gavin件到暂存区

 提醒1.py是未曾被增添随处理库在那之中的,untracked files正是无踪影的文本。

 

如果要足够到库中,首先要 git add 1.py改为能够增加到库中,能够交到修改。

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

澳门新萄京官方网站 12

澳门新萄京官方网站:git录制笔记,具体学习Github。 

翻开status,可以看来 changes to be committed,变为能够交到状态。

git add . 把当下颇具目录文件全体新文件和退换文件加多到暂存区,倘诺test.txt 文件提示是 Changes not staged for commit ,表达此追踪文件已经发出修改,不过还未增加到暂存区,把修改的文件通过git add 命令增加到暂存区后。提示Changes to be committed. 文件已经暂存,随时能够付出到仓库 。h.txt 新增Gavin件并未追踪状态Untracked files ,通过git add命令增多到暂存区,已到场追踪文件的限定。

交给变化到库中:git commit -m "create 1.py",那么些前边双引号中的内容是注释

 

澳门新萄京官方网站 13

5、版本提交

流程为:

 

澳门新萄京官方网站 14

$ git commit -m "this is test commit"
[master d4a498a] this is test commit
    git commit --amend --reset-author

 

2 files changed, 3 insertions( )
create mode 100644 t.txt

 

 


通过git commit -m "xxx" 将当前暂存区的剧情交给到库房,此番commit 提交文件是在暗中认可master分支,提交commit 对象寄放在.git/objects 的d4/1498a... 的公文中,该公文指向多少个树tree对象。

澳门新萄京官方网站 15

 

 查看修改历史:git log

6、查看当前交给日志记录

澳门新萄京官方网站 16

 

能够见见之前成立过二个1.py(并且commit过了)

$ git log
commit d4a498a197c24421acee5c5ff96cfbc7e5c3be9e
Author: andy<andy@gmail.com>
Date:   Sat Mar 8 14:23:37 2014 0800

于今修改1.py:

    this is test commit

澳门新萄京官方网站 17

commit 80071e48614361dc282473d6482e3faa9fec17d9
Author:andy<andy@gmail.com>
Date:   Sat Mar 8 13:35:13 2014 0800

扩充了贰个:a=1,之后保存1.py

    1st commit

那会儿再git status查看状态,

 

澳门新萄京官方网站 18

git log 命令查看当前版本

 

 

会唤醒,changes not staged for commit(变化还没到可交付的阶段,stage是阶段,这里是指可commit 的等第),那是个什么样境况吧,看下图:

7、文件差别相比

 

 

澳门新萄京官方网站 19

 专门的学业区和暂存区文件相比用git diff 命令,暂存区和不久前一天提交版本之间的歧异,可以用git diff --cached/staged. 如下:

 

  方今在test.txt 文件唯有1111111 文件内容,小编在文书test.txt中加多22222222等内容,比较当前暂存区和职业文件差别

正是unmodified和modified的事态。咱修改过了,所以在modified状态,bash窗口中也可以有提示,modified 1.py

 

 所以此时要先:git add 1.py

$ notepad test.txt

那时会提示changes to be commited:(正是能够交到了)

 

用紫铜色提醒modified 1.py,

$ git diff
diff --git a/test.txt b/test.txt
index 0147537..f33d264 100644
--- a/test.txt
b/test.txt
@@ -1,3 1,4 @@
11111111111111
22222222222222

那会儿得以用:git commit -m "change 1" 来交付那一个变化。

 

澳门新萄京官方网站 20

$ git status
# On branch master
#澳门新萄京官方网站:git录制笔记,具体学习Github。 Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working d
#
#       modified:   test.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

重新见到log,能够看看修改过五遍:

 

澳门新萄京官方网站 21

$ git diff --staged

那会儿git status 会发掘未有索要commit 的文本。

 

澳门新萄京官方网站 22

能够开采工作区比暂存区test.txt文件多扩展了22222222222222 内容。暂存区和数据旅舍内容是完全同样的。同期拜谒当前专门的学业区状态。以后大家呢刚刚修改的剧情增加到暂存区,同偶尔候相比暂存区和数据旅社文件差别。

何以观察改变的内情呢? 用  git diff

 

比方本身以后修改1.py:

$ git add test.txt

a=2

 

b=1

$ git diff

 澳门新萄京官方网站 23

 

这几天本人翻看情形:git status -s  ,个中-s是压缩方式的查阅

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

澳门新萄京官方网站 24

 

澳门新萄京官方网站 25

把职业区修改的剧情更新到暂存区后,能够看出此时暂存区和专门的学业区文件完全同样。状态是是已暂存,带提交状态。与此同临时间,我们能够比较暂存区和数量残忍之间的异样和比较。

三种样式的提醒意思是均等的。

 

输入git diff后:

$ git diff --staged
diff --git a/test.txt b/test.txt
index 0147537..f33d264 100644
--- a/test.txt
b/test.txt
@@ -1,3 1,4 @@
11111111111111
22222222222222

澳门新萄京官方网站 26

 

-a=1后面包车型大巴减号表示删掉了某条语句,同理, a=2前边的加号表示增多这条语句。

咱俩得以很领会的看看眼下暂存区和数据仓库版本相比较。暂存区test.txt 内容比前段时间一次提交内容多22222222222222 一行数据。提交数据到数据仓库。大家明天得以把专业区目录和数据旅馆相比,看看test.txt 直接的文件内容差别。

再交由全数改动:git add .  此时也正是 git add 1.py,因为此目录下唯有一个1.py,而add后边的点号表示全部的,所以git add . 也便是付出全数退换。

 

澳门新萄京官方网站 27

$ git diff head
diff --git a/test.txt b/test.txt
index 0147537..f33d264 100644
--- a/test.txt
b/test.txt
@@ -1,3 1,4 @@
11111111111111
22222222222222

 澳门新萄京官方网站 28

 

能够提交的state状态,-s状态下显得是一个大写的金棕的M加三个空格再跟文书档案名。

能够很及时看出工作区文件内容比较客栈有新修改的剧情。此时我们付出更新具备文件都不曾差别了。看看文件差距。

而不可提交的unstaged状态(unmodified或modified)在-s提醒状态下显得一个大写的庚午革命的M加二个空格再跟文书档案名。

 

澳门新萄京官方网站 29

$ git commit -m "test git diff "
[master fc0166f] test git diff
Committer: andy<andy@gmail.com>

 澳门新萄京官方网站 30

    git commit --amend --reset-author

看来差异了呢?

1 file changed, 1 insertion( )

此刻 git diff是尚未别的的显得,因为是对照unstaged那一个情景和上二回commit之后的不及(说白了便是四次都commit之后的未修改(unstaged)状态),而现行是staged状态(等待git commit),所以未有其余输出:

 

 澳门新萄京官方网站 31

$ git diff
$ git diff --staged
$ git diff head

为此各状态下输入git status -s  ,输出如下:

 

澳门新萄京官方网站 32

8、文件删除和活动

 此时涂改了两条语句,也add了,但尚未commit,可知处于最左侧的staged状态,并不曾进来commit后的unmodified状态,git diff是相比不出来的。要用git diff --cached:

 

 澳门新萄京官方网站 33

不无的工作区rm xxx删除后,能够直接从数据酒馆获取前段时间一次提交版本的情节git rm xxx。直接从数据客栈删除此文件内容。

假定那时大家再参与一条语句:c=d,再查看情状git status -s:

 

澳门新萄京官方网站 34

$ ls
h.txt  test.txt

前一个油红的M表示前边staged状态,后三个革命的M表示后边又增进c=b语句后产生了unstaged状态,假使有多个MM,大家要看改造的源委的话要用git diff HEAD:

$ rm h.txt

 澳门新萄京官方网站 35

$ ls
test.txt

若用git diff --cached则只会议及展览示这一步的变通:

$ git diff
diff --git a/h.txt b/h.txt
deleted file mode 100644
index 456f979..0000000
--- a/h.txt
/dev/null
@@ -1,3 0,0 @@
-welcome to here
-very good

澳门新萄京官方网站 36

 

 

能够由此文某相比较当前的办事目录h.txt 文件已经被删除了,职业区目录和暂存区比较文件差别也足以返现文件删除方式。接下来删除暂存区目录

 

 

澳门新萄京官方网站 37

$ git diff --staged

 

$ git rm h.txt
rm 'h.txt'

 澳门新萄京官方网站 38

$ git diff --staged
diff --git a/h.txt b/h.txt
deleted file mode 100644
index 456f979..0000000
--- a/h.txt
/dev/null
@@ -1,3 0,0 @@
-welcome to here

在git提交环节,存在三大多数:working tree, index file, commit

-very good

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    h.txt
#

 

通过删除暂存区文件前后可以相比出文件的反差。此时文件也不在追踪状态。还应该有我们无非希望删除暂存区的剧情,不删除职业区的剧情

git rm --cached -f h.txt  的主意来落到实处,特别是指向专业区有涂改,要删减暂存区内容。

 

 

$ git reset --hard
HEAD is now at fc0166f test git diff

$ ls
h.txt  test.txt

 

$ git rm --cached h.txt
rm 'h.txt'

$ git diff

$ git diff head
diff --git a/h.txt b/h.txt
deleted file mode 100644
index 456f979..0000000
--- a/h.txt
/dev/null
@@ -1,3 0,0 @@
-welcome to here

那三大学一年级些中:
working tree:正是你所专门的职业在的目录,每当你在代码中进行了修改,working tree的动静就更动了。
index file:是索引文件,它是连接working tree和commit的大桥,每当大家选用git-add命令来注册后,index file的剧情就改换了,此时index file就和working tree同步了。
commit:是最终的等第,唯有commit了,大家的代码才真正踏入了git商旅。大家选择git-commit就是将index file里的从头到尾的经过交给到commit中。
总括一下:
git diff:是查看working tree与index file的异样的。
git diff --cached:是翻开index file与commit的距离的。
git diff HEAD:是查看working tree和commit的出入的。(你确定没有忘记,HEAD代表的是这段时间的一遍commit的音讯)

-very good

$ git diff -cached
error: invalid option: -cached

$ git diff --cached h.txt
diff --git a/h.txt b/h.txt
deleted file mode 100644
index 456f979..0000000
--- a/h.txt
/dev/null
@@ -1,3 0,0 @@
-welcome to here
-very good

 

移动

git 移动文件操作是是相对先活动复制三个新文件,删除原来的文章件,增加新文件到追踪范围。

 

$ ls
h.txt  test.txt

$ git mv h.txt d.txt   结果是一样,约等于以下三条命令

$ ls
d.txt  test.txt

$ mv d.txt to.txt

$ git rm d.txt
rm 'd.txt'

$ git add to.txt

 

 

9、查看提交历史

 

$ git log
commit fc0166f53a45cfc4c17079e5e3454fb7e3136cb6
Author: andy<andy@gmail.com>
Date:   Sat Mar 8 15:52:10 2014 0800

    test git diff

commit d6eab3a38aee0b25ac395899c82edd48723a2ea9

Author: andy<andy@gmail.com>

Date:   Sat Mar 8 15:36:53 2014 0800

    enforce commit'

commit 85ec024140442df6db8625a07c2ee7369cceb704

Author: andy<andy@gmail.com>

Date:   Sat Mar 8 15:35:44 2014 0800

    com 3

 

 

git log  查看提交历史,git log -p -n  近来n 次提交的内能和区别。查看历史记录总括新闻 git log --stat,查看提交的野史记录格式可自由选择。

 

$ git log --pretty=format:"%h - %an, %ar : %s"
fc0166f - yyf, 48 minutes ago : test git diff
d6eab3a - yyf, 63 minutes ago : enforce commit'
85ec024 - yyf, 65 minutes ago : com 3
d4a498a - unknown, 2 hours ago : this is test commit
80071e4 - unknown, 3 hours ago : 1st commit

 

列出了常用的格式占位符写法及其代表的含义。

选项   说明
%H  提交对象(commit)的全部哈希字串
%h  提交对象的简短哈希字串
%T  树对象(tree)的完全哈希字串
%t  树对象的简短哈希字串
%P  父对象(parent)的欧洲经济共同体哈希字串
%p  父对象的简短哈希字串
%an 作者(author)的名字

本文由澳门新萄京官方网站发布于澳门新萄京官方网站,转载请注明出处:澳门新萄京官方网站:git录制笔记,具体学习G

关键词: