git、githup使用
一、git安装、配置
git安装:
root@ubuntu~# apt-get install git
git配置githup/自己的git服务器端账号, 即在用户的home目录下生成.gitcofig文件,可手动修改:
root@ubuntu~# git config --global user.name "Your Name Here"
root@ubuntu~# git config --global user.email your_email@example.com
root@ubuntu~# git config --global color.ui true
查看已有的配置信息:
root@ubuntu~# git config --list
二、git使用:
git创建仓库(repository,老外简写repo):
新建项目目录,eg: cd /root/mygit
1、首次将本地的项目初始化到git服务器:
root@ubuntu~# git init #创建一个空的repository,在当前目录下生成了.git文件夹
root@ubuntu~# git add *
root@ubuntu~# git commit -m 'initial project version'
root@ubuntu~# git remote add origin git@github.com:username/project_name.git # 即刚刚创建的仓库的地址
root@ubuntu~# git push -u origin master #推送代码到远程代码库
2、将git服务器代码初始化到本地:
root@ubuntu~#git status #查看状态
root@ubuntu~#git commit -m "log here" #不加参数-m,则默认使用vi打开一个文件写入log #等同于svn的commit
root@ubuntu~#git status
_______________________________
| |
| histroy |
|_______________________________|
|
|
| git commit
_______________|_______________
| |
| staging area |
|_______________________________|
|
|
| git add
________________|_______________
| |
| working dir |
|_______________________________|
root@ubuntu~#git status -s #查看三者之间的是否相同,标记位:M , MM,
root@ubuntu~#git diff #比较working dir 与staging area之间的差异
root@ubuntu~#git diff --staged #比较staging area 与 history之间的差异,用于add之后检测
撤销误操作:
root@ubuntu~#git add demo #add一版代码到staging area
root@ubuntu~#git status -s
M demo
root@ubuntu~#git reset demo #将history中的demo覆盖staging area
root@ubuntu~#git checkout demo #将staging area中文件覆盖到working dir
直接从history覆盖到working dir:
root@ubuntu~#git checkout HEAD demo
同理将working dir中改动直接提交到history:
root@ubuntu~#git commit -am "update log"
删除以及重命名:
root@ubuntu~#git rm demo
root@ubuntu~#git status -s
root@ubuntu~#git commit -m 'delete demo'
保存working dir中的demo文件
root@ubuntu~#git rm --cached demo #只是把staging area中demo删除了
root@ubuntu~#git reset demo #把history中的demo覆盖到staging area中
root@ubuntu~#git mv demo demo.bak #把working dir和staging area中重命名
root@ubuntu~#git commit -m 'rename demo' #history也重命名了
root@ubuntu~# git rm --cached demo.bak #只修改了staging area部分
root@ubuntu~#mv demo.bak demo
root@ubuntu~#git add demo
root@ubuntu~#git status -s
root@ubuntu~#git commit -m 'rename demo.bak'
赞存工作区:在代码修改之后,马上需要在原版本上修改bug,此时就可以将此时的工作区临时保存起来;
root@ubuntu~#git stash #此时working dir是history中的内容
root@ubuntu~#vim demo
root@ubuntu~#git commit -am 'quick fix' #紧急提交,修改bug
root@ubuntu~#git stash list
root@ubuntu~#git stash pop #将临时工作区恢复到working dir
分支管理:
root@ubuntu~# git branch #列出当前所有分支
* master #*表示当前使用的分支
root@ubuntu:~# git branch try_idea #创建branch
root@ubuntu:~# git branch
* master
try_idea
root@ubuntu~# git checkout try_idea #切换到try_idea分支
D aaa.py
Switched to branch 'try_idea'
root@ubuntu-ceph-06:~/cp/git# git branch
mater
* try_idea #当前分支
root@ubuntu~#git branch -d try_idea #删除分支
联合操作,创建分支并切换到新建的分支上:
root@ubuntu~#git checkout -b try_idea
版本合并:
root@ubuntu~#git branch mybranch
root@ubuntu~#git checkout mybranch
root@ubuntu~#vim demo #做下修改;
root@ubuntu~#git commit -am "mybranch commit"
root@ubuntu~#git checkout master
root@ubuntu~#git merge mybranch #将mybranch分支合并到master分支
root@ubuntu~#git branch -d mybranch #只有在合并之后才能删除分支,否则报错
分支版本合并:如图
master branch
____ ____ ____ ____
| | | | | | | |
| a | <--- | b | <--- | c | <---- | e |
|____| |____| |____| |____|
|
| bugfix branch
__|_ ____
| | | |
| d | <---- | f |
|____| |____|
root@ubuntu~#git merge buffix #在master版本上,并提交版本,到达了e版
出现需要合成临时版本的情况,即c版合并f版,生成临时版本之后,再于e版本合并;
出现的对话框,选择ctrl+x即可;若有冲突则提交不成功;需要手动vim修改
git log, 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:
用带参数的git log也可以看到分支的合并情况:
root@ubuntu-ceph-:~/cp/mygit# git log --graph --pretty=oneline --abbrev-commit
* f0be77e configct fixed
|\
| * 290e5e3 change master
| * c539383 branche test
* | a315058 aa.txt
|/
* e51e421 msg
* 6c84560 init msg
git分枝策略:
git、githup使用的更多相关文章
- 1.Git & GitHup
1.常见的版本控制(管理代码的版本迭代)工具: @ svn:集中式版本控制系统: SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里 ...
- JAVA视频链接
Java基础Java马士兵:链接:https://pan.baidu.com/s/1jJRvxGi密码:v3xb Java刘意:链接:https://pan.baidu.com/s/1kVZQCqr密 ...
- Java视频教程免费分享(网盘直接取)
Java基础 Java马士兵:链接:https://pan.baidu.com/s/1jJRvxGi密码:v3xb Java刘意:链接:https://pan.baidu.com/s/1kVZQCqr ...
- git学习记录——远程仓库(说白了就是代码放到githup上)
远程仓库 现在讲述的这些SVN都已经做到了,并没什么稀奇的地方 所以这节课赘述的是杀手级的东西——远程仓库githup ssh-keygen -t rsa -C "xxxxxxxxxxx@ ...
- git关联githup和码云
1.与已有的本地仓库关联git remote add origin git@github.com:michaelliao/learngit.git然后就可以协作开发push与pull 2.第二种方法直 ...
- git的使用学习(七)githup和码云的使用
1.使用GitHub 我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的.其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开 ...
- git和githup
一:Git简介 1.1:VCS的历史 Git是一款代码管理工具(Version Control System),傲视群雄,是目前世界上最先进的免费开源的分布式版本控制系统,没有之一! VCS版本控制系 ...
- git分布式版本控制玩法
git分布式版本控制玩法 Git distributed version control play github的配置安装步骤:1.下载git bash(从http://www.git-scm.com ...
- Git下载Spring项目源码并编译为Eclipse
1)当前系统中安装了gradle,如果为安装,可以从:http://www.gradle.org/downloads,,下载完后进行解压到任意盘符,然后增加环境变量GRADLE_HOME,并在环境变量 ...
随机推荐
- Es分析
http://my.oschina.net/lxbzj/blog/138587 http://donlianli.iteye.com/blog/1923017 http://tangzhaohui.n ...
- Qt for Android遇到的几个错误解决[Win7 + Qt5.6 +jdk 8u91]
[1]SDK Manager无法更新Android SDK安装后需要运行SDK Manager下载安装包,默认从google网站下载,但被GWF和谐了,感谢一位网友提供的镜像站点.具体步骤是:运行SD ...
- mysql DBI 事务控制
事务: 事务是任何健壮数据库系统的基本组成,它们 防止错误和数据库腐败通过确保有关数据的改变是原子发生的(不可分割的,要么所有要么什么都不做) 这个章节应用于数据库支持事务和 AutoCommit 是 ...
- Struts2 + Spring + hibernate 框架搭成实例
1.准备Jar包: struts2.hibernate.spring所需jar包 struts-core-2.x.x.jar ----struts核心包 xwork-core-2.x.x.jar ...
- XCode 7上传遇到ERROR ITMS-90535 Unexpected CFBundleExecutable Key. 的解决办法(转)
原文:http://blog.csdn.net/wxs0124/article/details/48706685 找到腾讯的info.plist 删除箭头指向的一行 重新打包,上传. (注明,不一定是 ...
- KVC在定义Model类中的妙用
@我们应用程序使用MVC架构的话,对于处理数据类,我们会单独的定义Model类,在里面为要展示的属性进行初始化赋值,一般採用的方法是通过定义相应的属性,挨个赋值.如今我要介绍的就是通过KVC,key- ...
- Android 根据EditText搜索框ListView动态显示数据
根据EditText搜索框ListView动态显示数据是根据需求来的,觉得这之中涉及的东西可能比较的有意思,所以动手来写一写,希望对大家有点帮助. 首先,我们来分析下整个过程: 1.建立一个layou ...
- 理解JS闭包
从事web开发工作,尤其主要是做服务器端开发的,难免会对客户端语言JavaScript一些概念有些似懂非懂的,甚至仅停留在实现功能的层面上,接下来的文章,是记录我对JavaScript的一些概念的理解 ...
- Python核心编程读笔 13:执行环境
第14章 执行环境 一.可调用对象 python有四种可调用对象:函数.方法.类.一些类的实例 1 函数 (1)内建函数(BIF) BIF是用c/c++写的,编译后放入python解释器,然后把它们 ...
- poj1487
题目大意: 给一棵递归树,看链接图片,从根节点开始对于每个节点往它的子节点移动,直到叶子节点停止.每个节点选哪一个孩子节点继续往下走是随机的(等概率).然后叶子节点都会标记一个数值,记为走到该节点的得 ...
