Git 基础应用
Git 学习
1.git工具基本含义
git最大的用处就是记录每个版本的变动、比较每个版本的不同,以及多人维护和开发同一个项目。支持版本回退。
2.git基本命令
a.创建版本库
$ mkdir learngit //创建目录
$ cd learngit //进入目录
$ pwd //查看当前目录
/Users/michael/learngit
$ git init //创建本地版本库
Initialized empty Git repository in /Users/michael/learngit/.git/
$ git add readme.txt //将readme.txt添加到工作区
$ git commit -m "test"//将readme.txt提交到本地仓库
$git status //查看目前工作区又没有没有被提交到仓库的文件
$git diff readme.txt //在提交到仓库之前查看那里做了改动(只能在提交到仓库之前)
$git log //查看历史记录
$git log --pretty=oneline //在一行上面显示历史记录
$git reset --hard HEAD^ //回退到上一个版本($git reset --hard HEAD^ 表示回退到上上一一个版本
)
$git reset --hard 版本代码 //回退到版本代码所代表的版本号(版本代码使用$git log 查看)
$git reflog //显示操作后的每一个命令,包括回退版本,一般用于回退后后悔时,查看没有回退之前的版本号,然后使用$git reset --hard 版本号 ,来回到没有回退之前的版本
$git diff HEAD -- readme.txt //查看工作区和版本库中readme.txt的不同
$git checkout -- readme.txt //撤销最近一次对readme.txt的修改,如果还没有$git add 就回到没有修改的上一个版本,如果已经$git add后才修改,就回到刚刚$git add的状态
$git reset HEAD readme.txt //将redme.txt从暂存区回退到工作区,然后使用$git checkout -- readme.txt 放弃工作区的修改
$git rm readme.txt //从版本库中删除readme.txt(必须先将本地的readme.txt删除,才能使用这个命令。使用 rm readme.txt命令将本地readme.txt删除以后可以使用$git checkout -- readme.txt 将文件找回。$git checkout -- readme.txt,其实是用版本库中的版本替换工作区中的版本)
$ssh-keygen -t rsa -C "example@example.com" //创建本机SSH key 用于github 网站的密匙绑定,即让github服务器知道这台主机和你的github账号是关联的,邮件地址填写自己的,(创建完成之后,在根目录会有.ssh文件夹,里面有两个文件,id_rsa和id_rsa.pub,其中id_rsa.pub里就是需要绑定在github网站上的公匙)
$git remote add origin git@github.com:mingming/learngit.git //关联远程github服务器上的仓库,记得把
git@github.com:mingming/learngit.git换成自己仓库的地址
$git push -u origin master //推送内容到远程仓库,并且将本地master分支和远程master分支关联起来(第一次推送使用)
$git push origin master //推送本地master分支到远程master分支,(修改后直接使用此命令推送)
$git clonegit@github.com:mingming/learngit.git //从远程仓库克隆,可以直接填充本地新仓库
$git checkout -b dev //创建dev分支并且切换到dev分支
$git branch dev // 创建dev分支
$git checkout dev //切换到dev分支
$git branch //列出所有分支
$git merge dev //将dev分支的工作合并到当前分支
$git branch -d dev //删除dev分支
$git log --graph --pretty=oneline --abbrev-commit //查看分支合并图
$git merge --no-ff -m "merge with no-ff" dev //以禁用Faste forword方式合并分支,合并完之后可以在历史中查看到曾经做过合并,而使用Faste forword方式则不会在历史记录中显示
$git stash //保存工作区现场,(当临时有任务需要修改时,需要暂停本分支上面工作任务)
$git stash list //查看本分支的工作现场列表
$git stash apply //恢复本分支工作现场
$git stash drop //删除stash内容
$git stash pop //恢复本分支stash内容并且删除stash
$ git stash apply stash@{0} //恢复指定的stash
$git branch -D dev //强制删除dev分支
$git remote -v //查看远程库详细信息
$git checkout -b dev origin/dev //创建本地dev分支,
$git branch --set-upstream dev origin/dev //指定本地dev和远程关联
$git tag V1.0 //给当前分支的版本号打上标签V1.用于标记自己的版本
$git tag //查看所有标签
$git tag V1.0 444444 //给commit id为444444的版本号打上标签
$git show V1.0 //查看V1.0版本的详细信息
$git tag -a V1.0 -m "shuo ming xin xi" //打上标签并且给出标签说明
$git tag -d V1.0 //删除V1.0标签
$git push origin V1.0 //推送V1.0标签
$git push origin tags //推送所有标签
$git push origin :refs/tags/V1.0 //删除远程标签,(在此之前必须删除本地标签V1.0)
3.git的使用技巧
a.远程仓库上可以fork别人的项目然后,clone到本地进行二次开发
b.可以编写.gitignore文件实现添加到工作区的时候忽略其中某些文件
c.两个人人,或者一个人在两台电脑上修改同一段代码,其中一方push到远程之后,另一方push时,必然要git pull一下更新本地仓库,然后查看双方修改的冲突在哪里,对冲突再次修改才能push到远程
d.搭建git服务器
。$ sudo apt-get install git //在服务器端安装git软件
。。$sudi adduser git //创建一个git用户,用来运行git服务。
。。。收集需要登陆的用户的公匙(id_rsa.pub文件里的
),将所有用户的公匙导入到文件/home/git/.ssh/authorized_keys,一行一个,//人数少可以使用此文件,人数多了可以使用Gitosis来管理
。。。$ sudo git init --bare sample.git //在选定的作为仓库的目录中输入此命令,会创建一个名字为sample.git的空仓库
。。。。$ sudo chown -R git:git sample.git //把owner改成git
。。。。。出于安全考虑,创建的git用户不允许登陆shell,通过将/etc/passwd里面的git:x:1001:1001:,,,:/home/git:/bin/bash改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell即可,这样git用户就可以通过ssh链接,但是不能使用shell登陆
。。。。。。在各自用户的电脑上使用$ git clone git@server:/srv/sample.git 克隆仓库就OK
Git 基础应用的更多相关文章
- [转] Git 基础 - 打标签
2.6 Git 基础 - 打标签 打标签 同大多数 VCS 一样,Git 也可以对某一时间点上的版本打上标签.人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做.本节我们一起来学习如何列 ...
- Git基础操作
配置秘钥 1.检查本机有没有秘钥 检查~/.ssh看看是否有名为d_rsa.pub和id_dsa.pub的2个文件. $ ~/.sshbash: /c/Users/lenovo/.ssh: Is a ...
- git基础及分支
关于版本控制 git是一种分布版本控制系统,每一主机都保存了完整副本.必杀技是分支. 在Windows可安装git客户端msysgit. git基础 第一次看progit觉得有点不懂,不懂版本控制,一 ...
- 《Pro Git》笔记2:Git基础操作
第二章 Git基础 Git基础包括:版本库的创建和获取,文件添加修改提交等基本操作,状态查询,远程版本库管理和同步,打标签. 1.取得项目的Git版本库 基于Git的工作流要以Git版本库为基础,即可 ...
- Git详解之二 Git基础
Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置: ...
- 2.4 Git 基础 - 撤消操作
2.4 Git 基础 - 撤消操作 撤消操作 任何时候,你都有可能需要撤消刚才所做的某些操作.接下来,我们会介绍一些基本的撤消操作相关的命令.请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失 ...
- ###Git 基础图解、分支图解、全面教程、常用命令###
一.Git 基础图解 转自:http://www.cnblogs.com/yaozhongxiao/p/3811130.html Git 图解剖析 git中文件内容并没有真正存储在索引(.git/in ...
- 【git学习二】git基础之git管理本地项目
1.背景 git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. ...
- Git基础教程(二)
继续上篇Git基础教程(一),在开篇之前,先回顾一下上篇中的基本命令. 配置命令:git config --global * 版本库初始化:git init 向版本库添加文件:git add * 提交 ...
- Git详解之二:Git基础
Git 基础 读完本章你就能上手使用 Git 了(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读).本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到 ...
随机推荐
- 蓝桥杯 ALGO-108 最大体积 (动态规划)
问题描述 每个物品有一定的体积(废话),不同的物品组 合,装入背包会战用一定的总体积.假如每个物品有无限件可用,那么有些体积是永远也装不出来的.为了尽量装满背包,附中的OIER想要研究一下物品不能装 ...
- vim的编码设置
VIM的相关字符编码主要有三个参数 fencs: 它是一个编码格式的猜测列表.当用vim打开某个文件时,会依次取这里面的编码进行解码,如果某个编码格式从头至尾解码正确,那么就用那个编码 fenc:它是 ...
- sql 给数据库表 字段 添加注释
最近发现一些代码生成器 有针对注释做一个很好的转化,之前建表的时候 没有这块的注释.现在想增加,专门去看了下 如何增加注释 1 -- 表加注释 2 EXEC sys.sp_addextendedpro ...
- Android 自动朗读(TTS)
在Android应用中,有时候需要朗读一些文本内容,今天介绍一下Android系统自带的朗读TextToSpeech(TTS).自动朗读支持可以对指定文本内容进行朗读,还可以把文本对应的音频录制成音频 ...
- 使用icon替换你的网页图标(转)
第一次使用 Font Awesome 发现相当的爽呀!它的图标很全,能够帮你节约时间去找图片.下面就来一起学习吧: 1: 去官方网站下载解压 http://fontawesome.io/ 2: 解压后 ...
- hql抓取要注意的点
fetchtype是lazy,那就用到了在通过缓存中的关联去取,用不到不取:lazy遇到joinfetch就失去意义,但是由于hql语句是自己编写的,可以控制加不加fetch 所以如果主力是hql语句 ...
- 2013年8月份第3周51Aspx源码发布详情
BaiduMusic Cache源码 2013-8-23 [VS2012]功能介绍:可以读取并保存百度音乐(Win8应用程序商店版本)的缓存.可以检测电脑是否安装了百度音乐,支持缓存音乐的导出功能. ...
- 查看某个html标签有哪些属性和事件
<html><head><script> //查看input标签有哪些属性和事件 function a() { var str = new String(" ...
- 面向连接的Socket Server的简单实现(简明易懂)
一.基本原理 有时候我们需要实现一个公共的模块,需要对多个其他的模块提供服务,最常用的方式就是实现一个Socket Server,接受客户的请求,并返回给客户结果. 这经常涉及到如果管理多个连接及如何 ...
- node 学习笔记
以下笔记默认安装完成node 及npm 1.安装express 新版本的express-generator已经独立出来,全局安装这个包就ok. npm install express-generato ...