Git学习笔记---安装与初始化 连接远程版本库
1.Git的安装
sudo apt-get install git
用的是linux(ubuntu)系统,安装非常简单,上面一条命令就够了。
2.初次运行的配置
Git 提供了一个叫做 git config 的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:
(a) /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
(b) ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
(c) 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
我用的是 --global 所以对应的是上面的(b)选项,在我的home目录下:
配置好了之后可以查看下配置信息,这条命令会显示所有配置
git config --list
3.本地版本库的基本操作:add与commit
下面就从一个空目录开始初始化版本库,这个版本库命名为“demo”,首先建立一个新的工作目录,进入该目录后,执行git init创建版本库。
mkdir demo
cd demo
git init
实际上,如果Git的版本是1.6.5或更新的版本,可以在git init命令的后面直接输入目录名称,自动完成目录的创建。
git init demo
从上面版本库初始化后的输出中,可以看到执行git init命令在工作区创建了隐藏目录.git。
接下来我们在demo目录下新建一个main.c文件文件中写入下面的内容:
#include<stdio.h>
int main(){
printf("hello world!");
return ;
}
为了将这个新建立的文件添加到版本库,需要执行下面的命令:
git add main.c
把当前目录下所有的文件add到仓库中可以用下面的命令:
git add .
执行add操作就把main.c文件添加到了版本库的“暂存区”,这时并不是真正的添加到了版本库,执行commit之后才算将文件添加到版本库。
git commit -m "my first commit"
上面的-m参数是说明本次提交的解释性文字,git是强制执行的。关于git的暂存区,可以去这里参考下【暂存区】。
4.连接远程版本库
以github为例,连接github的时候可以使用https协议,也可以使用ssh协议,如果是https,需要每次输入账号密码,如果使用ssh就没有这么麻烦。生成ssh公钥的命令:
ssh-keygen -t rsa -C "your_email@example.com"
本地与远程版本库的连接有两种,一种是先在github等类似网站上创建好然后clong到本地,另一种是本地已经创建好了版本库连接到远程。
(a) clong
clong的应用场景是,本地没有任何仓库,远程已经存在仓库,执行clong命令后可以在本地创建一个仓库。
clong的命令:
git clone <url>
<url>是远程仓库的url地址,下图是github上微软.net core项目的仓库,红框的内容,就是远程仓库的url。
在本地执行 git clong https://github.comdotnet/core.git 就能把这个项目clong到本地。这会在当前目录下创建一个名为 “dotnet” 的目录,并在这个目录下初始化一个 .git 文件夹,从远程仓库拉取下所有数据放入 .git 文件夹,然后从中读取最新版本的文件的拷贝。 如果你进入到这个新建的 dotnet 文件夹,你会发现所有的项目文件已经在里面了,准备就绪等待后续的开发和使用。
如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以使用如下命令:
git clone https://github.com/dotnet/core.git mydotnet
这样就会在本地创建一个名叫mydotnet的仓库(实际上就是换了一个名字)。
实际操作如下图(我在github上创建了一个名为domo的空仓库来作演示):
(b) 本地已经有版本库的情况
为本地仓库添加一个远程仓库的命令:
git remote add <shortname> <url>
<short name>是我们为这个远程仓库指定的简写名称,例如好多都是默认origin。
<url>指的就是远程仓库的地址比如 https://github.com/paulboone/ticgit 。
5.与远程版本库的交互操作
(a)从远程仓库中抓取与拉取
git fetch <remote-name>
这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。
(b)推送到远程仓库
git push <remote-name> <branch-name>
(c)查看远程仓库
git remote show <remote-name>
参考:
https://git-scm.com/book/zh/v2
http://www.worldhello.net/gotgit/index.html
https://gitee.com/help/articles/4122
git的常用命令 http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
github的文档 : https://help.github.com/cn/github/using-git/learning-about-git
Git学习笔记---安装与初始化 连接远程版本库的更多相关文章
- GIT学习笔记(1):创建版本库
GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出 ...
- GIT学习笔记(4):远程分支
GIT学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓 ...
- Git学习笔记(4)——添加远程仓库,克隆远程库,以及库的推送
本文记录了远程库的连接和库的克隆和推送. 远程仓库简介 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且 ...
- git 学习笔记 ---安装
Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). 安装Git 在Linux上安装Git 首先,你可以试着输入git,看看系统有没有安装Git: $ git The progr ...
- GIT使用—创建并使用远程版本库
远程版本库 (1)创建一个裸版本库 [root@localhost tmp]# git init fluff2 Initialized empty Git repository in /tmp/flu ...
- GIT学习笔记(2):时光机穿梭与远程仓库
GIT学习笔记(2):时光机穿梭与远程仓库 撤销操作 1.GIT如何跟踪修改 在我们修改了代码内容后,执行了git add和git commit命令来将其交由Git进行版本控制.我们前面举的例子是这样 ...
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
- [转]Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
随机推荐
- SQL Server 创建索引(index)
索引的简介: 索引分为聚集索引和非聚集索引,数据库中的索引类似于一本书的目录,在一本书中通过目录可以快速找到你想要的信息,而不需要读完全书. 索引主要目的是提高了SQL Server系统的性能,加快数 ...
- PDO数据访问抽象层(下)
PDO两大功能 一.事务功能 PDO的事务功能主要控制好几条sql语句同时成功或者同时失败(当其中一条SQL语句有错误时,同时好几条一起失败),失败时可以回滚操作 1.造对象 <?php $ds ...
- for-each 循环原理
for-each 循环原理1,for-each 是在java5 之后出现的.for是java 上的一个关键字,在jdk 找不到任何for的底层实现的.是因为for的底层实现被封装到了编译器中.所以通过 ...
- 设计模式之Proxy(代理)(转)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...
- impala与hive的比较以及impala的有缺点
最近读的几篇关于impala的文章,这篇良心不错:https://www.biaodianfu.com/impala.html(本文截取部分内容) Impala是Cloudera公司主导开发的新型查询 ...
- Vue + vant-UI 打造移动商城
- c# ListBox控件
ListBox控件可以一次呈现多个项,并且语序对控件中的选项进行选择操作,ListBox类公开Items属性,它是一个集合,类型为ListBox.ObjectCollection,是ListBox的一 ...
- Git在Eclipse中的使用
一.把远程仓库的项目clone到eclipse里面: 最新版的Eclipse上已经集成了Git插件.所以在Eclipse中可以很方便的使用Git的功能. 在使用Git功能之前,需要先进行下简单的设置. ...
- AtCoder Beginner Contest 082 B - Two Anagrams
题目链接:https://abc082.contest.atcoder.jp/tasks/abc082_b Time limit : 2sec / Memory limit : 256MB Score ...
- Win10+Ubuntu16.04双系统安装过程中遇到的一些问题及解决办法
前两天闲来无聊重装了系统,装的是win10 64的系统,后来心血来潮索性再装Ubuntu,搞成win10+Ubuntu双系统. win10系统的镜像文件可以通过MSDN网站获取,MSDN是一个很可靠的 ...