zoukankan      html  css  js  c++  java
  • Git 常用命令

     一、拿代码

    repo init -u url

    初始化版本库,在当前目录建立一个".repo",  -u 参数指定一个URL, 从这个URL 中取得repository 的 manifest 文件.

    1.拿Android主线上所有的sourcecode:

      repo init -u git://android.git.kernel.org/platform/manifest.git

    2.拿某个branch而不是主线上的代码,加入-b参数:

    repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake

    3.拿某一个project中的某一部分代码,用git clone:

    git clone git://android.git.kernel.org/kernel/common.git

    二、同步代码

    repository的代码到本地

    repo sync

    三、查看分支

      1.查看本地和远程分支, remote开头的都是远程分支:

    git branch -av

    2.查看本地分支:

    git branch

    3.如果没有本地分支,需要建立本地分支:

    git branch branch1

    或者

    git checkout -b branch1 origin/branch1

    如果有多个本地分支,可以用git checkout theBranchYouWannaOn 切换到你想在的本地分支。

    4,删除本地分支:

    git branch -d theBranchYouWannaToDelete

    5.查看处在哪个远程分支:

    git remote -v

    git romote show aosp

     

    四、查看提交历史

    1.git log

    2.查看提交历史并列出修改内容 -p, -2表示只显示两次提交记录。

    git log -p -2

    3.显示被提交的文件名:

    git log --stat

    4.将每次提交的commitCode和commitComment单行显示:

    git log --pretty=oneline

    5.显示某次提交的内容:

    git show commitCode

    git show commitCode --stat

    git show commitCode Filename

       6.查看某行代码( 如fileName文件中函数xxx_notify() )的提交历史:

       git blame fileName | grep xxx_notify

    五、下载代码

    1.git pull

    如果远程分支和本地分支有冲突,会遇到Merge Conflict提示,然后要手动解决冲突。

    2.git fetch

     git merge origin/ branch1

    fetch下载服务器代码到本地,但不自动合并。可以先git checkout origin/ branch1,切换到远程分支,看看代码修改情况,

    然后再决定是否merge。git pull = git fetch + git merge.

     3.git checkout branch1

        git merge branch2

    切换到branch1,然后将branch2上的代码merge到branch1上。

     

    六、提交修改

    修改相关文件后可通过git status查看被修改的文件,如a.c:

    1.从working directory提交到index

    git add a.c

    2.从index提交到本地repository

    git commit -am "modify a.c" 

    3.从本地repository提交到远程repository

    git push origin branch1

    七、提交关系

    在本地的代码中分为working directory, index, repository,他们的关系如下:

     

    八、比较提交

    1.比较working directory 和 index:

    git diff

    2.比较index 和 repository:

    git diff --cached

    3.比较working directory 和 repository:

    git diff HEAD

    4.比较远程分支文件 和 working directory:

    git diff remote/remtoteBranch workingDirectoryFilename

    5.比较两次已提交版本:

    git diff commitCode1 commitCode2

     

    九、代码回退

    1.git reset HEAD~1

    回退repository 和 index, 但不回退working directory。HEAD~1表示回退到前一次提交。

    2.git reset --soft HEAD~2

    只回退repository。HEAD~2表示回退到前2次提交。

    3.git reset --hard HEAD~3

    repository、index 和 working directory全部回退。HEAD~3表示回退到前3次提交。

     

    Git参考网址:

    http://www.open-open.com/lib/list/81?pn=8

    http://blog.csdn.net/wh_19910525/article/details/7438183

  • 相关阅读:
    全排列
    合并两个有序列表——递归&非递归
    学习笔记:oracle学习一:oracle11g体系结构之体系结构概述和逻辑存储结构
    学习笔记:oracle之win10安装卸载oracle 11gR2步骤及常见问题解决
    日常工作问题解决:配置NTP服务器以及一些常见错误解决
    日常工作问题解决:redhat6.9--解决yum功能不能正常使用和配置yum源
    日常工作问题解决:Redhat6.5--解决yum无法正常安装配置问题
    日常工作问题解决:使用vmvare克隆centos6虚拟机造成无eth0的解决办法
    日常工作问题解决:centos7下配置网卡以及查询网卡UUID
    日常工作问题解决:centos7下使用yum安装软件报yum.pid锁定
  • 原文地址:https://www.cnblogs.com/watson/p/3712370.html
Copyright © 2011-2022 走看看