git 使用(二)
之前写过一篇git使用(一),那是入门篇,现在的(二)可以说是进阶篇吧,主要讲一些使用过程的注意事件及相关问题的解决办法。
一、push和fetch还需要输入用户名和密码?
解决办法:看看公玥是否添加成功,输入ssh -T git@git.oschina.net,若返回Welcome to Git@OSC, yourname! 则添加成功。如果成功,则进入.git/目录改一下config文件里的url参数,把https地址改成ssh地址。
二、更新代码
1、git fetch,更新远端代码到本地缓存;
2、git rebase,将本地缓存中最新代码合并到当前分支。
上面的2步可以用git pull代替,但是,禁止使用 git pull 和 git merge 来更新与合并代码,因为会产生多余的log 在工作目录clean的时候执行合并操作。
如果要把远程分支合并到本地分支,就进入本地分支后git rebase origin/分支名。
三、提交代码
1、git add <your_file>从工作目录提交代码到本地缓存;
2、git commit -m "相关说明"提交add后的文件到本地当前分支;相关说明不超过80字符。如果超过,就commit时不加-m参数,在弹出界面第一行写简略标题,然后空一行,从第三行开始以段落形式写详细描述。完成以后输入 :wq 保存退出。
3、如果所有修改过的文件都要提交,包括有删除的文件可以直接使用git commit -a(git add + git commit);
4、如果要修改当前分支上一条提交 比如发现message错误,或少提交一个修改的文件,git add <your_file>后git commit --amend。(前提是还没有push,否则会起冲突)
5、git push推送本地当前分支最新commit到远端仓库
建立关联:如果要push到远程master分支,就git push origin master,如果要push到远程的其他分支,就git push origin xxx(xxx代表远程分支名)。
未关联:git push origin local_branch:remote_branch
local_branch为本地存在的分支,remote_branch为远程分支,如果remote_branch不存在则会自动创建分支。类似,git push origin :remote_branch,local_branch留空的话则是删除远程remote_branch分支。
四、分支
1、git branch -a查看所有分支(包括远程分支,显示为红色);
2、git checkout xxx 切换到分支xxx;
3、git checkout -b xxx 新建本地分支xxx并切换到分支xxx;
4、git checkout -b xxx origin/XXX 新建本地分支xxx并切换到分支xxx,并把远程分支XXX更新到xxx;
5、git branch -d xxx 删除本地分支xxx(删除失败时把-d参数改为-D);
6、合并xxx分支到master,首先切换到master分支,然后git merge xxx;
7、删除远端分之后本地branch -a还能显示已删除的远端分支时?git fetch -p即可解决问题(-p, --prune prune remote-tracking branches no longer on remote);
五、遇到不好解决的问题,重新clone。然后如果发现需要输用户名和密码,就参考第一条解决方案。
git 使用(二)的更多相关文章
- Git 笔记二-Git安装与初始配置
git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...
- 版本控制git之二 分支 切换分支 创建分支 合并 删除
版本控制git之二 分支 有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处 ...
- Git(二)Git几个区的关系与Git和GitHub的关联
前言 前面只是大概的介绍了一点基础的东西,接下来会更加深入的去了解一下Git. 一.Git的工作区.暂存区和版本库之间的区别和联系 1)工作区 在PC中能看得到的创建的一个管理仓库的目录.比如目录下G ...
- 【Git学习二】深入了解git checkout命令
检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区.检出命令的用法如下: 用法一:git checkout[-q][<commit& ...
- Git(二)使用git管理文件版本(TortoiseGit )
一.创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都 ...
- 【Git】二、安装配置
一.Git安装 Linux $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ ap ...
- git学习——<二>git配置文件
一.git所有配置文件 <一>./etc/gitconfig全局配置文件 修改该配置文件,会对所有用户有影响. 使用git config --system来配置该文件 <二>. ...
- Git系列二之数据管理
1.Git基本管理 git常用的基本操作 1.1提交数据 我们可以简单的把工作目录理解成是一个被Git服务程序管理的目录,Git会时刻的追踪目录内文件的改动,另外在安装好了Git服务程序后,默认就会创 ...
- 分布式版本号控制系统Git(二):github
前言 但凡是喜欢研究技术,或者听大牛们说起过的,都应该至少是听过github这个东西.详细就不介绍了.不了解的能够去了解了解,最基本的功能当然是代码托管啦,上面有各种各样的大牛写的项目. 另外这一章不 ...
- Git学习二
一.在工作区和暂存区退回 在工作区: $git checkout -- filename 在暂存区: $git reset HEAD filename $git checkout -- filenam ...
随机推荐
- python 可变参数
原文地址:http://docs.pythontab.com/python/python3.4/controlflow.html#tut-functions 一个最不常用的选择是可以让函数调用可变个数 ...
- JAVA 关于Icon,Image,ImageIcon的简单的对比参考 分类: Java Game 2014-08-14 17:08 210人阅读 评论(0) 收藏
转自:http://blog.csdn.net/bcmissrain/article/details/7190886 其实就算是现在,我还是有不少地方概念模糊,但是下面的内容是是没有什么问题的.稍微介 ...
- lca 最近公共祖先
http://poj.org/problem?id=1330 #include<cstdio> #include<cstring> #include<algorithm& ...
- IIS网站打不开错误解决方案集锦(一):编译器错误消息: 编译器失败,错误代码为 -1073741502。
[2015-05-12解决记录] 问题:服务器上的文件一直都是好的,但是运行了很长一段时间以后,发现网站打不开,或者上传不了图片了,怎么办? 错误信息:c:\windows\system32\inet ...
- Auto Layout - 使用总结
1.要开始使用AutoLayout,请先设置要约束的view的translatesAutoresizingMaskIntoConstraints属性为NO.在xib或者sb中勾选Use Auto La ...
- Spring MVC学习问题记录
自2015年3月11日开始进行记录 day01 2015.03.11 问题1:Line 1 in XML document from URL is invalid; 今天出现了Content is n ...
- PowerDesigner(一)-PowerDesigner概述(系统分析与建模)(转)
PowerDesigner概述 PowerDesigner是Sybase公司推出的一个集成了企业架构,UML(统一建模语言)和数据库的CASE(计算机辅助软件工程)工具.它不仅可以用于系统设计和开发的 ...
- cf div2 236 D
D. Upgrading Array time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- HDU 1041 Computer Transformation (简单大数)
Computer Transformation http://acm.hdu.edu.cn/showproblem.php?pid=1041 Problem Description A sequenc ...
- java集合之ArrayList的实现原理
1. ArrayList概述: ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部 ...