Git学习 <day1>

创建本地版本库

选择合适的本地目录用来存放git本地版本库,我新建了mygit目录专门用来存放git相关。

➜  mygit pwd
/Users/zhoupengxiao/mygit

git init

git init命令用来创建一个空的git仓库,即.git目录

➜  mygit git init
Initialized empty Git repository in /Users/zhoupengxiao/mygit/.git/
➜  mygit git:(master)

.git目录下的内容如下所示,HEAD文件是master分支的引用,objects目录存放数据对象。

.git git:(master) ls  
HEAD        branches    config      description hooks       info        objects     refs

git add

新建了一个文件helloworld.pages,将该文件添加到本地git仓库:

mygit git:(master)git add helloworld.pagesmygit git:(master)

执行git add命令之后,helloworld.pages还没真正添加到仓库,只是添加到了索引文件index file(即暂存区)。使用git add . 将工作目录的所有更改添加到暂存区。

git commit

➜  mygit git:(master) ✗ git commit -m "hello world"
[master (root-commit) 2e48ec3] hello world
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 helloworld.pages

执行git commit后,helloworld.pages才真正添加到了仓库。其中-m是本次提交的message信息。如果没有指定文件名的话,git commit会将暂存区所有的changes提交到仓库,若使用git commit filename -m "commit message" 会单独提交指定的文件。

.git解读

在git的提交环节,包含三个部分:working tree, index file, commit,分别对应工作目录working directory,暂存区staging area,本地仓库git repository。

staging area和git repository在.git目录下,staging area可以看作index,working directory是我们的工作空间,执行add操作将工作空间中的文件登记到index file中,staging area相当于是工作目录和本地仓库的过渡区域,可看做一个checkpoint。
下面这张图是在stackoverflow上看到的,可以帮我们从宏观上整体理解git:

常用命令

git status

我们执行git status命令来看下git的状态:

➜  mygit git:(master) ✗ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .DS_Store

no changes added to commit (use "git add")

输出的信息显示,当前HEAD指向master分支,名为.DS_Store的文件状态是untracked,即没有被git追踪,没有使用git对该文件进行版本控制,提示使用git add来将该文件添加到git版本库中。

.gitignore配置

.DS_Store是Mac OS系统保存文件的自定义属性的隐藏文件,相当于windows中的.ini。这类本地文件是不需要进行版本控制的,类似的还有java编译后的class文件,java web项目中的classpath,这些文件不需要提交到git仓库中,但每次git status都要给我们列出来untracked files信息,强迫症的我不想看到它们怎么办呢?可以配置.gitignore文件让git忽略这些无需提交的文件。
新建.gitignore文本文件,放入git根目录,比如我本地/Users/zhoupengxiao/mygit/.gitignore,将要忽略的文件名注册在.gitignore中,如

.DS_Store
*.class

其中可以使用*通配符,*.class表示当前路径下所有的class文件。
执行git add, git commit将.gitignore文件提交到git仓库。
再执行git status

➜  mygit git:(master) git status
On branch master
nothing to commit, working directory clean

可以看到工作目录已经是clean的了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值