Git 简单入门(一)
Git 简介
- Git 是目前世界上最先进的分布式版本控制系统
- 分布式和集中式
- 集中式版本控制系统
- 版本库放在中央服务器,干活之前先从中央服务器取得最新版本,然后开始干活,活干完后将自己干的成果推送给中央服务器
- 缺点:必须联网才能进行工作,对网络的要求较高
- 分布式版本控制系统
- 没有中央服务器,每个人的电脑上都是一个完整的版本库,多人协作的时候,只需要把各自的修改推送给对方,就可以互相看到对方的修改了
- 通常情况下也会有一个充当“中央服务器”的电脑,这个服务器的作用仅仅是用来交换大家的修改,没有它只是交换修改不方便而已
- 集中式版本控制系统
Git 安装
在安装之前先试着输入git 看看系统有没有安装Git,如果没有的话就要进行安装了,方法如下:
在Linux(Ubuntu) 上安装Git
在命令行下面输入:sudo apt-get install git
在Mac OS X 上安装Git
可以通过 Homebrew 安装 Git
brew install git
使用Xcode安装
直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
Git 的使用
- 版本库
版本库就是一个仓库/目录,这个目录里面的所有文件都可以被Git管理
创建版本库
创建一个空目录
在命令行中进入该目录,执行下面的命令
git init
可以发现当前目录下面多了一个 .git 的目录(此目录默认是被隐藏的),这个目录一般不要手动修改,否则可能会把Git仓库给破坏了
将文件添加到仓库
git add 文件名
git commit -m"评论"
git add 命令中 -A . 和 -u 的区别
- git add . 会将工作时的所有变化提交到暂存区(包括文件内容的修改及新文件,但包括被删除的文件)
- git add -u 进监控已经被add的文件,不会提交新文件
- git add -A 是上面两个命令功能的集合
git commit 命令
# 提交暂存区到仓库区
$ git commit -m [message] # 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区
$ git commit -a # 提交时显示所有diff信息
$ git commit -v # 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ...
注意事项
- 版本控制系统只能跟踪文本文件的改动,没办法跟踪二进制(图片、视频)文件的改动
- 文本编码强烈建议使用标准的UTF-8编码,所有的语言都使用同一种编码
- Git 版本管理
- 工作区和暂存区
- 工作区
工作区是电脑中项目的目录,能够看到的 - 版本库
版本库是工作区中的 .git 目录,其中中的要的是 stage/index 的暂存区和git自动创建的一个分支 master 以及指向master的一个指针HEAD - add 及 commit
- git add 是把文件修改添加到暂存区
- git commit 提交修改是讲暂存区所有的内容提交到当前分支
- 工作区
- 版本回退
- git log 命令 显示从最近到最远的提交日志
- HEAD表示当前版本,版本回退使用 git reset 命令
- git reset --hard HEAD^ 将当前版本退回到上一个版本
- git reset --hard 版本号 将当前版本退回到指定版本
- 上上一个版本是 HEAD^^ ,上100个版本是 git
- git reflog 查看所有历史命令
- 管理修改
- 第一次修改-> git add -> 第二次修改 -> git commit 这样第二次修改的内容将不会被提交
- 撤销修改
- git checkout -- 文件名 将文件在工作区的修改全部撤销
- 当文件自修改后还没有被放到暂存区,撤销修改后就回到和版本库一模一样的状态
- 当文件已经添加到暂存区后,又作了修改,撤销修改后,就回到添加暂存区后的状态
- 当把文件修改add到暂存区还没有提交,可以使用git reset HEAD file 可以把暂存区的修改撤销掉,重新放回工作区
- git checkout -- 文件名 将文件在工作区的修改全部撤销
- 删除文件
当把一个文件提交到版本库了,然后把文件删除了,此时工作区和版本库就不一致了,git status 会告诉你哪些文件被删除了,现在有两个选择确实要从版本库中删除该文件
git rm 文件名
git commit -m"comment"
删错了,要把误删的文件恢复到最新版本
git checkout -- 文件名
- 工作区和暂存区
- 远程仓库
像GitHub和码云等网站提供Git仓库托管服务,这个需要自己去注册网站的账号,之后才能使用Git支持多种协议 (HTTP/S、本地协议、SSH、Git))参考资料
- SSH Key (验证身份的一种方式)
- 在用户主目录下面看看有没有 .ssh目录,如果有,看看这个目录里面是否有 id_rsa(私钥)和id_rsa.pub(公钥) 文件 ,公钥可以告诉别人,私钥不能告诉别人,如果有上述的两个文件的话,就可以只接跳到下一步,否则就需要创建SSH Key
- ssh-keygen -t rsa -C "youremail@example.com"
- 用账号登录托管网站,然后在账号设置里面添加 SSH Key 即可
- SSH Key (验证身份的一种方式)
添加远程仓库
关联远程仓库
git remote add origin 地址
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的
将本地库的所有内容推到远程库上
git push -u origin master
第一次推送master分支是加了 -u 参数,Git 会把本地的master分支和远程的分支关联起来
之后本地只要作了提交,就可以通过下面命令将做进的修改推送到托管网站
git push origin master
从远程库克隆
git clone 远程地址
本文参考: 廖雪峰的官方网站
如需转载请注明出处:http://www.cnblogs.com/zhuchenglin/p/8807270.html
Git 简单入门(一)的更多相关文章
- git简单入门
git简单入门 标签(空格分隔): git git是作为程序员必备的技能.在这里就不去介绍版本控制和git产生的历史了. 首先看看常用的git命令: git init git add git comm ...
- git 简单入门
首先了解一下git的是什么: [百度百科解释]Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.[2] Git 是 Linus Torvalds 为了帮助管理 ...
- Git 简单入门(二)
分支管理 分支的作用 提交不完整的代码到主分支上会导致别人不能正常开发 如果等代码全部写完再提交,存在丢失每天进度的风险 详见:https://segmentfault.com/q/101000001 ...
- Git简单入门教程
1.下载Git,360的软件管家里搜 2.安装Git,下载好之后安装到指定路径下 安装方法有多个复选框的把第一个也选上,其他默认直接next,最后一步什么都不选 3.配置用户信息:(右键-->g ...
- ubuntu git 简单入门【转】
转自:http://blog.chinaunix.net/uid-20718384-id-3334859.html 1. 安装 sudo apt-get install git-core 2. 初始 ...
- [转]VS2015 Git 源码管理工具简单入门
VS2015 Git 源码管理工具简单入门 1.VS Git插件 1.1 环境 VS2015+GitLab 1.2 Git操作过程图解 1.3 常见名词解释 拉取(Pull):将远程版本库合并到本 ...
- 程序员,一起玩转GitHub版本控制,超简单入门教程 干货2
本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注 ...
- 简单入门使用GitHub总结
简单入门使用GitHub总结 ps: 试着自己弄一下GitHub,发现问题多多,中间还差点把自己的资料给全部弄没了(直接摔啦~). 然后网上查找各种资料进行设置终于成功了. 以下是参考的资料链接: G ...
- GitHub这么火,程序员你不学学吗? 超简单入门教程 【转载】
本GitHub教程旨在能够帮助大家快速入门学习使用GitHub. 本文章由做全栈攻城狮-写代码也要读书,爱全栈,更爱生活.原创.如有转载,请注明出处. GitHub是什么? GitHub首先是个分布式 ...
随机推荐
- [物理学与PDEs]第4章习题2 反应力学方程组形式的化约 - 能量守恒方程
试证明: 利用连续性方程及动量方程, 能量守恒方程 (2. 15) 可化为 (2. 21) 的形式. 证明: 注意到 $$\beex \bea &\quad\cfrac{\p}{\p t}\s ...
- windows7 java环境配置
最近在工作碰到了在ie浏览器调用java程序时,出现了一些问题,所以在这里整理一下: jdk的下载地址为:http://666dx.pc6.com/wwb3/jdkx6417.zip 正对于windo ...
- DNS服务器 知识点
DNS服务器: 1.DNS: Domain Name Service 域 名字 服务 2.域名组成:(树形结构) 根域 .顶级域 国家顶级域 cn jp hk uk 商业顶级域 com 商业机构 go ...
- 高并发秒杀系统--Service事务管理与继承测试
[Spring IoC的类型及应用场景] [Spring事务使用方式] [Spring事务的特性] [Spring事务回滚的理解] [Service声明式事务的配置] 1.配置事务管理器 2.配置基 ...
- Educational Codeforces Round 33 (Rated for Div. 2) E. Counting Arrays
题目链接 题意:给你两个数x,yx,yx,y,让你构造一些长为yyy的数列,让这个数列的累乘为xxx,输出方案数. 思路:考虑对xxx进行质因数分解,设某个质因子PiP_iPi的的幂为kkk,则这个 ...
- ve2.0 v-for循环报错的解决方案
<li v-for="(item,index) in mokeData" class="page" :key="index"> ...
- 【原创】Java基础之Freemarker(1)模板加载及清空机制
一 freemarker加载模版机制 freemarker中的配置项template_update_delay表明模版的缓存时间,单位是s,超过缓存时间则从磁盘加载最新的模版,具体细节如下: 1)fr ...
- kafka_2.11-2.1.0测试
kafka测试启动创建topic ./kafka-topics.sh --create --zookeeper dip005:2181,dip006:2181,dip007 --replication ...
- SpringBoot整合mybatis多数据源,支持分布式事务
编码工具:IDEA SpringBoot版本:2.0.1 JDK版本:1.8 1.使用IDEA构建一个Maven工程 ,添加依赖: <?xml version="1.0" e ...
- AD证书导入文档(单向认证)
AD证书或者SSL证书导入的方法步骤(在root用户下操作) 1. 将证书命名为AD-PRO.cer,并确定证书的颁发. 2. 将/app/ad_cert/keystore下的原有证书删除掉和文件 ...