vagrant的学习之Git学习


参考学习网址:

  http://www.runoob.com/git/git-install-setup.html

  http://www.bootcss.com/p/git-guide/

  https://www.cnblogs.com/vastsum/p/5910573.html


(1)安装:

Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。

①Debian/Ubuntu Git 安装命令为:
//安装依赖
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
//安装git
$ apt-get install git
//安装完成后,查看版本
$ git --version

②Centos/RedHat 安装命令为:

//安装依赖
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
//安装git
$ yum -y install git-core
//查看版本
$ git --version
我的测试环境:ubuntu14.04,所以采用apt-get方式安装。

(2)创建仓库

①把当前目录初始化为git仓库,会生成一个.git的目录。

git init 

②把当前目录初始化为git裸仓库,.git文件目录下的那些文件都会在该目录下,

可以通过添加hooks钩子在仓库的同级目录下新建一个存放项目源码的文件夹,也就是说将git仓库与项目源码分离。

git init --bare

(3)创建本地公钥

打开Shell(Windows下打开Git Bash),创建SSH Key:

ssh-keygen -t rsa -C "youremail@example.com"

Git服务器打开RAS认证:

vim /etc/ssh/sshd_config
//修改:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

在/home/git下创建.ssh目录,然后创建authorized_keys文件,并将本地刚生成的公钥导入进去,

(【shift+$】快捷键可以将光标移动到行尾,然后复制公钥到新的一行)。


(4)克隆项目

git clone 用户名@服务器静态IP:项目绝对路径

示例:git clone git@192.168.1.100:/home/web/study


(5)git 常用命令

查看状态:
git status

添加新文件到版本库暂存区:
(1)添加指定的文件
git add 文件名/目录
(2)添加所有的文件
git add .

暂存区文件提交到git:
git commit -m '版本备注'

删除文件:
(1)删除指定的文件
git rm 文件名/目录
(2)删除git版本库的文件,保留本地的文件
git rm --cached 文件或目录
使用sublime或者phpstorm修改文件名后,特别是只修改大小写后,
提交到git后,并不起作用,
可以使用一下方式:
git mv 文件a 文件b
git add .
git commit -m '修改文件名'

查看提交日志:
git log
git log -p 查看详细信息
git log -p -1 查看最近一次,最后一个参数是数字1
git log --oneline 简短的日志信息
git log --name-status 查看文件具体变化

修改最新一次的提交的描述:
git commit --amend

从暂存区撤回
git reset HEAD 文件名
从暂存区撤回到未修改的状态
git checkout -- 文件名

使用别名替换命令:
把git的add修改为a
git config --global alias.a add
把git的commit修改为c
git config --global alias.c commit

git push 推送
git pull 拉取

git reset --hard 历史commit的ID 回退到历史版本
git reflog

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,
使用命令:git reset --hard commit_id。

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

创建.gitignore文件,可以忽略不想提交的文件。
*.txt //忽略以txt结尾的文件
!a.txt //结合上一句,忽略.txt结尾的文件,除了a.txt文件
/verdor //忽略这个目录
/verdor/*.php 忽略verdor子级的以php结尾的文件
/verdor/**/*.php 忽略verdor下的以及子级下的以php结尾的文件


vagrant的学习之Git学习的更多相关文章

  1. 【学习总结】Git学习-参考廖雪峰老师教程-总

    公元2018-10-21 实验室台式机 win7 64位 参考教程: 廖雪峰Git教程 其他资料:Git-book 北大一只总结的笔记,最终整理的时候可以参考:Git笔记 评论区看到的另一个人,总结在 ...

  2. Git 学习看这篇就够了!

    Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和github有什么关系啊?" git是一个版本控制工具: githu ...

  3. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  4. git学习之branch分支

    作为新手,站在我的角度肤浅的来理解,分支就是相当于开辟了一个新的临时工作区,在这个工作区进行文件代码改动,然后在合并到master主工作区,这样能保证主工作区的安全性和稳定性,对于团队协作尤为重要. ...

  5. git学习(一):建立本地仓库和基本命令

    前沿 最近一直在做目标跟踪,开始一直是通过文件按日期命名的方式来区分版本的,实在是太麻烦了,现在下定决心学习一下git命令 基本概念 集中式:有一台中央服务器,每个人把需要改的部分拿回去改完再送回来 ...

  6. git学习手册

    #git学习手册 git: Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.[2] Git 是 Linus Torvalds 为了帮助管理 Linux内核开发而 ...

  7. git学习【转载】

    最近参与别人的github项目时,学习了Git的使用,首先需要在https://github.com/网站上注册账号和邮箱,然后fork一个开源项目,然后下载目前Windows下最新版本的git,下载 ...

  8. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  9. Git学习笔记(四)

    一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...

随机推荐

  1. Android开发中SharedPreferences的使用

    在Android开发中,在储存少量的数据时,个人感觉SharedPreferences是最好的选择,SharedPreferences是以键值对的方式进行储存,支持boolean,int,float, ...

  2. 消息中间件与RPC的区别

    消息中间件和消息通信与RPC各自具有怎样的优势,如何互补消息中间件主要实现的是异步.弹性消息以及队列,弹性消息有时可以借助于外存从而一定程度上可以实现峰值缓存,有效均衡服务器端压力,同时消息可以进行一 ...

  3. 如何理解Python中的if __name__ == '__main__'

    1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...

  4. 目标检测中bounding box regression

    https://zhuanlan.zhihu.com/p/26938549 RCNN实际包含两个子步骤,一是对上一步的输出向量进行分类(需要根据特征训练分类器):二是通过边界回归(bounding-b ...

  5. python:第一章

    完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行. 代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要1 ...

  6. oracle插入多表(insert all/first)

    1.建测试表   CREATE TABLE EDW_INT   (     AGMT_NO         VARCHAR2(40 BYTE)             NOT NULL,     AG ...

  7. github 新建一个仓库后

    每次都记不住命令,记一下,防止找不到 echo "# learn18" >> README.md git init git add README.md git comm ...

  8. luogu P3353 在你窗外闪耀的星星

    问题:天空可以理解为一条数轴,在这条数轴上分布着许多颗星星,对于每颗星星都有它的位置Xi和自身的亮度Bi.而窗户所能看到的范围是一个给出的参数W,我们看到的星星也包括窗户边缘的星星.现在,要你求出调整 ...

  9. [LUOGU] P3611 [USACO17JAN]Cow Dance Show奶牛舞蹈

    https://www.luogu.org/problemnew/show/P3611 二分答案+优先队列 二分O(logn) 判一次正确性O(nlogn) 总体O(nlognlogn) 为了让pri ...

  10. Mysql数据库事件使用与示例

    1 事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...