git & repo 命令

来源:互联网 发布:南京大学cssci数据库 编辑:程序博客网 时间:2024/06/05 01:18

Git常用命令:

配置全局的email和用户名:

git config --global user.email "ansen"

git config --global user.name "tomorrow_p@163.com"


git brach    //查看分支情况
git branch mybranch    //
创建分支
git branch -a    //查看所有分支
git branch -r    //查看远程分支
git branch -v    //
查看各个分支最后一次提交
git branch –merged    //
查看哪些分支合并入当前分支
git branch –no-merged    //
查看哪些分支未合并入当前分支
git branch -d mybranch    //
删除分支
git branch -D mybranch    //
强制删除分支
git branch test caf/test    //创建并映射到远程分支
git pull    //更新代码,从git服务器更新代码
git push origin master    //提交代码
git push caf  :test    //删除远程分支
git push origin hotfix:hotfix    //提交代码到远程分支
git push origin --delete hotfix    //删除远程分支
git push caf test    //推送远程分支
git clone git://github.com/jquery/jquery.git(从git服务器得到的)     //从远程仓库拷贝代码到本地
git status    //查看代码修改状态
git stash    // 备份当前的工作区内容
git stash list   // 显示git栈内的所有备份
git stash clear   // 清除git栈
git stash pop   //从git栈中读取最近一次保存的内容(取出之后记录就不在list中)
git stash apply   //从git栈中读取最近一次保存的内容(取出之后记录就在list中)
git fetch origin master(远程分支名称)    //同步服务器代码到本地
git check 分支名    //切换到某个分支
git checkout .     // 撤销所有修改
git checkout  文件路径     // 撤销该文件的修改
git checkout -b mybranch    //
创建并切换分支
git checkout -b mybranch origin/mybranch    //基于
远程分支创建新分支
git cherry-pick 提交的哈希码    //合并提交
git commit -a –amend    
//对最近一次commit的进行修改
git reset 98222917718f2c80546b5bbd1718b6446df7b6c7    //回退到98222917718f2c8
git reset --hard 477f4e4adcbcb6afa5f8707a0e6bc6c0e4b92e88    //回退到477f...本地内容也改变
git reset --soft 477f4e4adcbcb6afa5f8707    //回退到某个版本,只回退了commit的信息
git reset .    //撤消git add
git reset --hard HEAD 回滚到add之前的状态
git reset --hard HEAD^^    //回滚前两个版本
git reset HEAD^    //撤销最近一次提交(即退回到上一次版本)并本地保留代码
git rebase origin/master    //将fetch到的代码合并到当前分支
git rebase --continue    //继续rebase
git rebase --abort    //终止合并操作,恢复到rebase之前的状态
git revert 4adcbcb    //回滚到某次提交
git rm -r res/drawable-xxx/xx/xx.xx    //删除提交
git reflog    //查看引用日志
git remote -v    //查看远程仓库
git remote update    //更新远程分支
git remote add temp ../temp/    //添加远程仓库
git rm --cached file1 //删除文件跟踪但不删除文件系统中的文件file1
git log --oneline
git log xxx.java    //查看文件的提交log
git stash(保存现在的修改到暂存区)    //
暂存代码
git stash pop    //
取出暂存代码
git merge mybranch (将mybranch合并到当前所在分支)    //
合并分支
gitk ./src/com/android/**/MSimCallFeaturesSubSetting.java    //查看文件的修改记录
git tag -a v1.4 -m ‘version 1.4′    //创建标签
git tag v1.4-lw    
//创建标签
git format-patch -1    //单次提交
git format-patch -3    // 从master往前3个提交的内容,可修改为你想要的数值
git format-patch –n 07fe    //-n指patch数,07fe对应提交的名称,某次提交(含)之前的几次提交
git format-patch -s 4e16    // 某次提交以后的所有patch, --4e16指的是SHA1 ID
git pull --rebase caf v3_msm8976    //减少merge节点
git commit --amend    //补充上一次提交的内容




git merge origin/mybranch    //
取远程分支合并到本地
Samples

>>提交操作:
    $ git add . 
    $ git commit -m "clear"
    $ git push origin master

>>获取远程分支
    先fetch所有远程分支的信息;
    远程分支映射到本地命名为local-branchname(和远程分支命名一致).
    git checkout -b local-branchname origin/remote_branchname
>>创建本地分支推送到服务器
    git branch develop
    git push -u origin develop
>>修改完冲突后继续rebase:
    git add .    //把修改添加进分支 
    git rebase --continue    //继续rebase

>>创建 git 仓库:
    mkdir Git_Test
    cd Git_Test
    git init
    touch README.md
    git add README.md
    git commit -m "first commit"
    git remote add origin https://git.oschina.net/tomorrow_p/Git_Test.git
    git push -u origin master
>>已有项目?
    cd existing_git_repo
    git remote add origin https://git.oschina.net/tomorrow_p/Git_Test.git
    git push -u origin master
>>提交模板
    1.在根目录建立模板文件: ansen_template
[CAUSE]     :
[SOLUTION]  :
[REVIEW]    : Own
[SIDEEFFECT]: without side effects
[PROJECT]   : V8
[CR]        : SM-2182
[MODULAR]   :
    2.设置模板
    git config commit.template   [模板文件名]    //这个命令只能设置当前分支的提交模板
    git config  --global commit.template   [模板文件名]    //这个命令能设置全局的提交模板    

 例如:git config commit.template   xxx_template

           git config --global commit.template  /home/pansen/MSM8976/repo/ansen_template

    3.设置文本编辑器

        git config --global core.editor  [编辑器名字]

        例如:git config --global core.editor vi

    4.使用模板提交代码

    git  commit    之后会以设置的编辑器打开模板文件,然后按照格式修改该文件,并保存

    git push

git config --list

>>GIT patch

1. 对某次提交生成patch:
    git format-patch -1 SHA1-ID
    例如: git format-patch -1 9c94cf7f08314a1f5d2b4bb5faaf9d2c2d6b4875

2. 应用patch:
    先检查patch文件:# git apply --stat newpatch.patch
    检查能否应用成功:# git apply --check  newpatch.patch
    打补丁:# git am newpatch.patch
    最后检查无误:# git push
>>Git flow
master: 
    是用于保存官方的发布历史(使用版本号为master上的所有提交打TAG)
develop: 
    是用于集成各种功能的开发分支
feature: 
    新功能的开发使用独立的分支(基于develop分支)。为了备份或便于团队之间的合作,这种分支也可以被推送到中央仓库。功能开发完后合并(merge)到develop分支。功能开发永远不应该直接牵扯到master
release: 
    临近发布是基于develop的分支建立release分支,这个分支只能修复bug或者开发文档和发布相关的工作;之后合并到master分支,用版本号打上标签,该分支上的改动合并到develop分支
hotfix: 
    发布后维护工作或紧急问题的快速修复,这是唯一可以直接基于master分支创建的分支(以bug描述命名),一旦问题修复,改动应该合并到master和develop分支(master还要使用更新的版本号打TAG)



http://note.youdao.com/share/?id=b1fa57ea7f560cd30fce387efb5da4c6&type=note#/

Repo 常用命令:
Qucii命令:
./makeQucii -t mm +路径名    //单编
./makeQucii -t mm packages/apps/Settings/    //simple
./makeQucii -t qucii3903    //全编  
./makeQucii -t update-api
./makeQucii -h    //查看编译命令
./makeQucii -t update-api
repo forall -c git pull;./makeQucii -t

>>repo init

Options:

    -u:指定一个URL,其连接到一个maniest仓库

    -m:manifest仓库中选择一个xml文件

    -b:选择一个maniest仓库中的一个特殊的分支

Example:
repo init -u git@server2:/data/git/manifest_msm8939_5.0.git -m manifest.xml
>>repo sync

参照清单文件.repo/manifest.xml克隆并同步版本库.如果某个项目版本库不存在,则相当于执行git clone,如果项目版本库已经存在,则相当于执行下面的两条指令:

git remote update    对每一个remote源执行了fetch操作

git rebase origin/branch    针对当前分支的跟踪分支执行rebase操作。

可以选择克隆其中的一个项目repo sync platform/build
>>repo start
刚克隆下来的代码是没有分支的,repo start实际是对git checkout –b 命令的封装。为指定的项目或所有项目(若使用—all参数),以清单文件中为设定的分支,创建特性分支。这条指令与git checkout –b 还是有很大的区别的,git checkout –b 是在当前所在的分支的基础上创建特性分支,而repo start是在清单文件设定分
支的基础上创建特性分支

Example

  repo start  stable  --all

>>repo checkout

实际上是对git checkout 命令的封装,但不能带-b参数,所以不能用此命令来创建特性分支。

Example

repo checkout crane-dev 

>>repo branches(查看分支)
repo diff(查看工作区文件差异)
实际是对git diff 命令的封装,用于分别显示各个项目工作区下的文件差异。
repo stage(把文件添加到index表中)

     实际是对git add --interactive命令的封装、用于挑选各个项目工作区中的改动以加入暂存区。

>>repo prune(删除已经合并分支)

   实际上是对git branch –d命令的封装,该命令用于扫面项目的各个分支,并删除已经合并的分支,用法如下:

repo abandon(删除指定分支)

   实际上是对git branch –D 命令的封装,用法如下:

>>repo status(查看文件状态)

实际上是对git diff-indexgit diff-filse命令的封装,同时显示暂存区的状态和本地文件修改的状态

$repo/repo status platform/bionic

repo remote(设置远程仓库)

Example:

repo remote add org ssh://172.16.1.31/git_repo

repo push

repo push org

   这是新添加的指令,用于向服务器提交代码,使用方法:

>>repo forall

Options

    -c:后面所带的参数着是shell指令

    -p:shell指令输出之前列出项目名称

    -v:列出执行shell指令输出的错误信息

>>repo grep

相当于对git grep 的封装,用于在项目文件中进行内容查找

repo manifest

显示manifest文件内容

Usage:

repo manifest –o android.xml

>>repo version

显示repo的版本号

>>repo upload

repo upload相当于git push,但是又有很大的不同。它不是将版本库改动推送到克隆时的远程服务器,而是推送到代码审核服务器(Gerrit软件架设)的特殊引用上,使用SSH协议。代码审核服务器会对推送的提交进行特殊处理,将新的提交显示为一个待审核的修改集,并进入代码审查流程,只有当审核通过后,才会合并到官方正式的版本库中。

>>repo download

主要用于代码审核者下载和评估贡献者提交的修订

>>repo selfupdate

用于repo自身的更新






图形工具:
SourceTree是用来管理代码分支的。
beyond compare是用来比较代码,解决冲突的。


1 0
原创粉丝点击