git入门笔记

来源:互联网 发布:java 获取字符串下标 编辑:程序博客网 时间:2024/06/07 20:18

安装

windows进网址:git 下载安装

输入git --version出现一些git的版本信息等就表示安装成功

配置

$ git config --global user.name "John Smith" $ git config --global user.email "johnsmith@gmail.com" 

配置你的名字和你的邮箱,因为Git在记录每一次文件变化时都会使用这些信息,在与他人协作时个人信息也是非常重要的。

创建git仓库

进到你要放仓库的目录,然后执行git init初始化一个仓库
会在该目录下创建一个.git的目录.git目录是隐藏的

添加文件到版本仓库

$ git add README$ git add LICENSE$ git commit -m "Initial project version"

git add 添加文件
git commit -m 使提交生效,并且需要有注释,用-m参数进行注释

获取远程仓库

使用git clone <url>进行仓库的克隆

仓库的基本操作

仓库布局

一个Git版本控制下的目录,可以分为两部分:

  • .git目录,包含了Git版本控制库
  • 除.git目录外的其他内容,称为工作区

当我们使用git clone命令获得一个本地仓库后,都会得到一个和远程仓库一样的.git/目录和版本控制库中的一个版本的内容放在工作区中。接下来我们的修改都是基于工作区的,然后再将工作区的修改提交到版本控制库。

.git/目录中存储了版本控制库所需的所有信息,那么一旦该目录被移除后,整个项目目录也就不再受到Git的控制了——git命令不会再起作用。在版本控制库中还存在一个区域——暂存区(Staging Area),暂存区的作用是存放下一次提交(git commit)的内容。而git add命令正是将当前工作区的修改添加到暂存区中。

查看工作区中文件状态

git status

忽略某些文件

可以将需要忽略的文件路径放入项目根目录的.gitignore文件中(没有的话自己创建),每一个被忽略的文件单独一行,这样Git就不会跟踪管理这些文件了——git status命令不会显示他们尚未被跟踪。

git仓库历史

git log查看每一次执行git commit操作的信息
这里写图片描述

git log命令在不添加任何参数的默认情况下的显示,最近的提交会显示在最前面,如果一个屏幕无法现实完整的提交历史,那么可以通过空格j向下翻页,q可以退出查看历史的窗口。可以看到,每一次提交都包含了一个SHA-1校验码作为提交的标识符、提交者的名字和Email(也就是git config –global user.name 中设置的值)、提交日期以及提交注释信息。

当然每一次提交包含的信息远远不止这些,如果需查看不同的输出形式或者更多的信息,可以参考以下参数列表:

git log -p: 显示每一次提交和它之前提交的Diffgit log --stat: 显示每一次提交和它相关联的文件的统计信息以及状态git log --name-only:显示每一次提交和他关联的文件列表(仅仅包含文件名)git log <since>..<until>: 仅仅显示<since>和<until>之间的提交列表,<since>和<until>可以是提交的SHA-校验码、分支名、HEAD等等git log --author="<pattern>": 显示Author为特定值的提交列表,<pattern>可以是字符串,也可以是一个正则表达式git log <file>:查看某一个文件相关联的提交历史信息

远程仓库

本地到远程

git remote命令提供了和其他仓库进行交互的功能,如果我们需要和GitHub上的中央服务器进行交互,那么首先需要将它添加到本地的remote列表中:

git remote add <name> <url>

通常是为了记忆方便而取的名字,则是远程Git仓库的地址,例如https://github.com/tianmaying/spring-boot-hello-world.git,接下来可以查看remote仓库列表:

$ git remote -v origin  https://github.com/tianmaying/spring-boot-hello-world.git (fetch)origin  https://github.com/tianmaying/spring-boot-hello-world.git (push)

上述结果表明,我们添加了一个名字为origin的remote仓库,它的地址是https://github.com/tianmaying/spring-boot-hello-world.git,有两条记录的原因是Git区分了fetch/push也就是和这个仓库读/写交互的地址,它们可以是不同的仓库,但是现在我们暂时不建议这样做。

当我们添加完origin远程仓库后,此时origin还是空仓库,可以通过git push命令将本地仓库的内容推送到远程仓库:

git push <remote> <branch>

一般来说我们推送时需要制定一个分支,那么Git会将这个分支(分支相当于某一个提交的引用,后面的课程中会进一步学习)和相关的提交以及内部对象上传到远程仓库。例如我们在输入git push origin master后,远程仓库origin中就会有master分支相关的所有提交了。

远程到本地

之前我们学习过从GitHub上克隆已有仓库到本地,实际上使用git clone命令除了在本地新建了一个Git仓库以外,Git还自动添加了一个remote仓库,名字为origin(Git默认设置),地址为git clone的url参数。这样我们就能够直接在本地仓库使用push/pull命令和远程仓库进行交互了。

在开发的过程中,远程仓库也有可能发生变化,例如其他开发者将自己的工作同步到的远程仓库,这时我们就需要把这些工作同步到自己本地的仓库里:
git pull
git pull命令就可以帮助我们完成这件事情,当然pull的过程中可能出现冲突(两个开发者修改了同一个文件中的同一部分内容),如果解决冲突我们会在分支管理中详细讲解。

分支管理

暂时看不大懂,先留下连接,理解了再来补充
weibo

v2ex上不错的一个帖子

解释图
帖子链接

0 0