之前写过一篇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 使用(二)的更多相关文章

  1. Git 笔记二-Git安装与初始配置

    git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...

  2. 版本控制git之二 分支 切换分支 创建分支 合并 删除

      版本控制git之二 分支   有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处 ...

  3. Git(二)Git几个区的关系与Git和GitHub的关联

    前言 前面只是大概的介绍了一点基础的东西,接下来会更加深入的去了解一下Git. 一.Git的工作区.暂存区和版本库之间的区别和联系 1)工作区 在PC中能看得到的创建的一个管理仓库的目录.比如目录下G ...

  4. 【Git学习二】深入了解git checkout命令

    检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区.检出命令的用法如下: 用法一:git checkout[-q][<commit& ...

  5. Git(二)使用git管理文件版本(TortoiseGit )

    一.创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都 ...

  6. 【Git】二、安装配置

    一.Git安装 Linux $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ ap ...

  7. git学习——<二>git配置文件

    一.git所有配置文件 <一>./etc/gitconfig全局配置文件 修改该配置文件,会对所有用户有影响. 使用git config --system来配置该文件 <二>. ...

  8. Git系列二之数据管理

    1.Git基本管理 git常用的基本操作 1.1提交数据 我们可以简单的把工作目录理解成是一个被Git服务程序管理的目录,Git会时刻的追踪目录内文件的改动,另外在安装好了Git服务程序后,默认就会创 ...

  9. 分布式版本号控制系统Git(二):github

    前言 但凡是喜欢研究技术,或者听大牛们说起过的,都应该至少是听过github这个东西.详细就不介绍了.不了解的能够去了解了解,最基本的功能当然是代码托管啦,上面有各种各样的大牛写的项目. 另外这一章不 ...

  10. Git学习二

    一.在工作区和暂存区退回 在工作区: $git checkout -- filename 在暂存区: $git reset HEAD filename $git checkout -- filenam ...

随机推荐

  1. public、protect、private在父类子类中使用

    先贴出一张,直观的.估计大家都见过的关于public.protect.private的范围图 作用域 当前类 同一package 子孙类 其他package public     T         ...

  2. Excel下用SQL语句实现AVEDEV函数功能

    Excel下AVEDEV函数返回一组数据点到其算术平均值的绝对偏差的平均值. AVEDEV 是对一组数据中变化性的度量.最常见的应用就是统计平均分差. 但是如果在Excel中写SQL进行一些复杂的统计 ...

  3. IE点击tif,tiff文件,提示打开而不是查找

    IE点击tif或者tiff后缀的文件,提示窗口没有显示打开,而是现实查找.而下载到本地后,又能用acdsee之类的软件双击打开.在tif文件右键-属性中选择了打开程序,在IE中还是依然. 搜索网络资料 ...

  4. ptypes中string类的空间分配

    问题描述:            在学习ptypes中string类的空间分配时,经常使分配的空间超出实际所需的空间 使用的分配函数是:_alloc函数 注:        在_alloc函数中调用了 ...

  5. Codeforces Round #278 (Div. 2)

    题目链接:http://codeforces.com/contest/488 A. Giga Tower Giga Tower is the tallest and deepest building ...

  6. Basic knowledge of javaScript (keep for myself)

    1. 函数表达式 JavaScript 函数可以通过一个表达式定义.eg. var x = function (a, b) {return a * b}; so: var x = function ( ...

  7. phonegap/cordova常用命令

    创建项目 cordova create foldername com.wps.test projectName cd foldername 基本设备信息 设备 API: cordova plugin ...

  8. css 之优先策略

    <html> <head> <title>testCSS</title> <style type="text/css"> ...

  9. geotools解析SLD中的elsefilter为什么里面的filter无效

    原因是在org.geotools.renderer.lite.StreamingRenderer中的process函数: /** * @param rf * @param feature * @par ...

  10. Javacript中(function(){})() 与 (function(){}()) 区别 {转}

    这个问题可以从不同的角度来看,但从结果上来说 :他们是一样的.首先,如果从AST(抽象语法树)的角度来看,两者的AST是一模一样的,最终结果都是一次函数调用.因此,就解析器产生的结果论而言,两者是没有 ...