git 安装与使用场景
1. 安装
yum install git #自动安装依赖 centos
sudo apt-get install git #ubutu
http://msysgit.github.io/ #window下载安装即可
2.配置
安装完成之后,设置配置用户:
#必须
git config --global user.name "Your Name" #用户名
git config --global user.email "email@example.com" #邮箱 #可选配置信息有
branch.master.remote=origin #一般默认远程库origin
branch.master.merge=refs/heads/master
remote.origin.url=https://changyuan@github.com/changyuan/MyProj.git #远程的项目url #别名配置
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Crese t %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" #日志
通过 git config --list 可以查看多有的配置信息,git config --global "object" "values" 配置所有的全局配置
远程同步时候需要(git clone 到自己的库中是不需要的):
centos: ssh-keygen -t rsa -C "youremail@example.com"
window:Git Bash打开,输入 ssh-keygen ,按enter,一直按enter 直到出现下面,直至在.ssh中生成id_rsa.pub文件,复制其中的秘钥到你需要的平台(gitthub),如下图:

3.创建版本库
1)克隆已存在的项目
git clone git@github.com:changyuan/MyProj.git
2) 在本地初始化项目,新建文件夹,在里面
git init #生成.git目录,里面包含git的设置信息,比如:.gitingore是忽略版本控制的列表
4.创建的使用场景
#常用分支
主分支:master 特征模块:feature 开发分支:dev 维护分支:hofix 发布分支:release #初始化
git init #添加文件到缓冲区
git add readme.txt
git add readme.txt readme1.txt
git add . #提交
git commit -m "add readme.txt" #删除文件
git rm test.txt
git commit -m "remove test.txt" #比较差异
git diff readme.txt #查看工作区和版本库里面最新版本差异
git diff HEAD -- readme.txt #丢弃工作区的修改,或者删除了(没有commit之前的,之后需要用git reset --hard version)
git checkout -- readme.txt #查看状态
git status
git status -s #创建分支
git branch dev
#删除分支
git branch -d dev #合并分支
git checkout master
git merge dev #通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
#添加 --no-ff :禁用Fast forward方式
git merge --no-ff -m "merge with no-ff" dev #删除远程分支
git push origin :dev #切换分支
git checkout dev
#创建并且切换到dev分支
git checkout -b dev #当两个分支都修改了一个文件地方(master,dev),合并分支的时候 git merge dev 。解决冲突
vim readme.txt
git add readme.txt
git commit -m "conflict fixed" #写错修改,不同的场景操作区分:
#场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
#场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
#场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard HEAD^,不过前提是没有推送到远程库。 #回到上个版本
git reset --hred HEAD^
#回到上上个版本
git reset --hred HEAD^^
#回到前100个版本
git reset --hred HEAD~100 #通过git log看看版本号 还原到此版本
git reset --hred version #查看日志
git log
#简介看法
git log --pretty=oneline
git log --pretty=oneline --abbrev-commit #查看未来
git reflog
#查看合并分支图
git log --graph
git log --graph --pretty=oneline --abbrev-commit #git 可以起别名通过配置之后,如下
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Crese t %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
#之后可以用git lg 查看日志 #隐藏工作区,去修复bug场景
git stash
#查看隐藏的工作区
git stash list
#恢复 git stash apply;git stash drop 或者 git stash pop #远程同步 #生成你自己的邮箱秘钥,用来ssh同步哦
ssh-keygen -t rsa -C "youremail@example.com"
在/root/.ssh/中有两个秘钥 id_rsa和id_rsa.pub ,之后把 id_rsa.pub 填写到 Gittub 或其他的秘钥平台 SSH keys中, #你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,下面用于关联远程库。
#如果你是 git clone git@github.com:changyuan/MyProj.git YourProject 就不用了。
git remote add origin git@github.com:changyuan/MyProj.git #查看远程库的信息
git remote
git remote -v #第一次推送
git push -u origin master
git push origin master #从远程获取
git fetch #推送远程分支
git push -u origin master
git push origin dev #当你的小伙伴从远程库clone时,默认情况下,你的小伙伴只能看到本地的master分支。不信可以用git branch命令看看:
#现在,你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:
git pull
git pull origin dev git checkout -b dev origin/dev
#本地dev分支和远程dev分支做链接
git branch --set-upstream dev /origin/dev #多人协作的工作模式通常是这样:
#首先,可以试图用git push origin branch-name推送自己的修改;
#如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
#如果合并有冲突,则解决冲突,并在本地提交;
#没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
#如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。 #打版本控制
git tag v1.0
#通过-a对某个版本添加说明
git tag -a v0.1 -m "version 0.1 released" 3628164
#通过-s用私钥签名一个标签
git tag -s v0.2 -m "signed version 0.2 released" fec145a
#查看所有
git tag
#显示某个版本详细信息
git show v1.0
#删除本地tag
git tag -d v1.0 #推送标记
git push origin v1.0
#推送本地所有的tag
git push origin --tags
#删除远程tag
git push origin :v1.0
git push origin :refs/tags/v1.0 其他工具:
要方便管理公钥,用Gitosis;要像SVN那样变态地控制权限,用Gitolite。
git 安装与使用场景的更多相关文章
- Git 基础 —— 常见使用场景
Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 突然插入 Bugifx 工作, ...
- CentOS 7 Git安装
Git安装 yum -y install git 安装后,在srv目录下建立Git的目录. 初始化一个git空仓库 git init --bare project.git 增加用于访问git仓库的用户 ...
- Git安装
前面说了很多废话,说得再好,还不如实践一次.要想使用Git,首先得安装.这次实验主要是实践怎样安装Git. 安装与检查是否安装成功 1. 在Linux(Ubuntu)上安装 上篇的Git简介已经介绍过 ...
- Git安装与配置
一.简介 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...
- 版本管理之Git(二):Win7上Git安装及简单配置过程
一.安装包 msysgit(Windows版本的Git) 下载地址:http://code.google.com/p/msysgit/downloads/list?q=full+installer+o ...
- git安装及命令使用和github网站
最近参与别人的github项目时,学习了git的使用,首先需要在https://github.com/网站上注册账号和邮箱,然后fork一个开源项目,然后下载目前Windows下最新版本的git,下载 ...
- Git 安装
安装参考资料: http://lzw.me/a/msysgit-tortoisegit-win-git.html http://blog.csdn.net/qwiwuqo/article/detail ...
- 转 git安装配置
Win7上Git安装及配置过程 一.安装说明 1.Git在windows平台上安装说明. Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 ...
- git学习1:git安装和配置
Git是什么?世界上最先进的分布式版本控制系统,记录了一个文本文件的每次一修改信息,比如,一篇散文,从草稿到最终出版,经历过无数次修改,修改了标点符号形成一个版本,老师帮助修改形成一个版本,同学帮忙修 ...
随机推荐
- 【同行说技术】iOS程序员从小白到大神必读资料汇总
在文章<iOS程序员从小白到大神必读资料汇总(一)>里面介绍了很多iOS入门学习的资料,今天小编就发几篇技术进阶的文章,快来看看吧! 一.iOS后台模式开发指南 这个教程会教你在什么时候怎 ...
- jquery总结(1)
jquery是一种js对象.里面封装了一些方法,但是jquery对象不能直接使用js方法,js对象不能直接使用jquery方法. jquery对象类似于js对象的集合,就是存在形式是以特殊数组的形式: ...
- HDU 5264 pog loves szh I (字符串,水)
题意:设有两个串A和B,现将B反转,再用插入的形式合成一个串.如:A:abc B:efg:反转B先,变gfe:作插入,agbfce.现在给出一个串,要求还原出A和B. 思路:扫一遍O(n),串A在 ...
- jupyterhub
pkill jupyterhub #激活python环境 pyenv activate jupyterhub #启动jupyterhub /fly/start_jupyterhub.sh cd ~/r ...
- Linux用户(组)管理
在linux中系统中,它并不认识帐号名称.它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中.我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passw ...
- 构建高性能web站点--读书大纲
用户输入你的站点网址,等了半天..还没打开,裤衩一下就给关了.好了,流失了一个用户.为什么会有这样的问题呢.怎么解决自己站点“慢”,体验差的问题呢. 在这段等待的时间里,到底发生了什么?事实上这并不简 ...
- yeoman bower grunt等安装
grunt-beginner前端自动化工具:http://www.imooc.com/learn/30 grunt的安装 官方站点:http://gruntjs.com/ 安装指令: sudo npm ...
- css实现鼠标经过导航文字偏位效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JDK 1.6 下载 地址
JDK1.6官方下载_JDK6官方下载地址: http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin ...
- DDoS攻防战(三):ip黑白名单防火墙frdev的原理与实现
在上一篇文章<DDoS攻防战 (二) :CC攻击工具实现与防御理论>中,笔者阐述了一个防御状态机,它可用来抵御来自应用层的DDoS攻击,但是该状态机依赖一个能应对大量条目快速增删的ip黑白 ...