xml地图|网站地图|网站标签 [设为首页] [加入收藏]
来自 新濠国际登录平台 2019-10-03 21:15 的文章
当前位置: 新濠国际登录平台 > 新濠国际登录平台 > 正文

内部有下载链接,暂存工作区

新濠国际登录平台 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

新濠国际登录平台 2

就是电脑能看得到的目录,比如刚刚创建的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

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

首先找到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

也可以用下面的,我的是win7的64位系统:

前面我们把文件往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-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:从抽屉中恢复

新濠国际登录平台 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

 新濠国际登录平台 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
http://edu.51cto.com/course/1838.html


 2.创建

新濠国际登录平台 5

首先在 E:pythongitTUT 内右键,选择Git Bash Here,就会打开一个在本路径下的bash窗口。

新濠国际登录平台 6

新濠国际登录平台 7

新濠国际登录平台, 

设置用户名:

git config --global user.name "longbiscuit"      ,这个用户名和邮箱是在GitHub官网你自己注册的用户名和邮箱。

可以用  git config user.name  来检查输入的用户名。

设置邮箱:

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

新濠国际登录平台 8

初始化:

git init

 会在目录下自动初始化并生成 .git文件夹,

新濠国际登录平台 9

显示所有的文件: ls -a

输入 open .git  后会自动打开这个隐藏的文件夹。但我没打开,这个先不管了,不重要。可以手动打开看看。

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

新濠国际登录平台 10

但此时还没有添加到git管理库中(git是本地版本,github是网络版本,用这个客户端可以直接管理,也可以联网上传到网络上)。

检查状态:git status**

 新濠国际登录平台 11

 提示1.py是没有被添加到管理库当中的,untracked files就是无踪迹的文件。

如果要添加到库中,首先要 git add 1.py改为可以添加到库中,可以提交修改。

新濠国际登录平台 12

查看status,可以看到 changes to be committed,变为可以提交状态。

提交变化到库中:git commit -m "create 1.py",这个后面双引号中的内容是注释

新濠国际登录平台 13

流程为:

本文由新濠国际登录平台发布于新濠国际登录平台,转载请注明出处:内部有下载链接,暂存工作区

关键词: