• 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

    git强制提交

    git push --force origin 分支名



    七、提交关系

    在本地的代码中分为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次提交。


  • 相关阅读:
    BZOJ3779: 重组病毒
    BZOJ3112 [ZJOI2013]防守战线
    BZOJ4011 [HNOI2015]落忆枫音
    BZOJ2726 [SDOI2012]任务安排
    BZOJ1492 [NOI2007]货币兑换
    BZOJ1597 [USACO2008]土地购买
    BZOJ3611 [HEOI2014]大工程
    BZOJ3991 [SDOI2015]寻宝游戏
    BZOJ3675 [APIO2014]序列分割
    BZOJ1010 [HNOI2008]玩具装箱
  • 原文地址:https://www.cnblogs.com/cnsec/p/13407191.html
Copyright © 2020-2023  润新知