一、Linux常用命令

pwd           用于显示工作目录,执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

chmod      用来变更文件或目录的权限。

>                表示覆盖原文件内容(文件的日期也会自动更新)。

>>              表示追加内容(会另起一行,文件的日期也会自动更新)。

mkdir        在工作目录下建立一个名子目录。

curl            是利用URL规则在命令行下工作的文件传输工具,支持文件的上传和下载。

histroy  查看历史命令

二、Git的使用

1.  git init

初始化一个Git仓库,即把当前目录变成Git可管理的仓库(repository,版本库又名仓库)。

2.  git add

把文件添加到版本库,实际上就是把文件修改添加到暂存区(stage)。

如:$ git add readme.txt

3.  git commit

把文件提交到版本库,实际上就是把暂存区的所有内容提交到当前分支(master)。

如:$ git commit -m "wrote a readme file"

-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)。

commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt

$ git add file2.txt file3.txt

$ git commit -m "add 3 files."

注意:如果不用git add到暂存区,那就不会加入到commit中。

4.  git status

查看什么文件被改过了,时刻掌握仓库当前的状态。

5.  git diff

查看修改内容。

如:$ git diff readme.txt

6.  git log

显示从最近到最远的提交日志。如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:$ git log --pretty=oneline

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

7.  git reflog

查看命令历史。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

8.  git reset

版本回退。

如:$ git reset --hard HEAD^

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

如:$ git reset --hard 1094a

1094a是版本号的前几位。版本号没必要写全,前几位就可以了,Git会自动去找。

9.  git checkout -- file

如:$ git checkout -- readme.txt

git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

注意:git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。

10.  git reset HEAD <file>

把暂存区的修改撤销掉(unstage),重新放回工作区。git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

11.  git rm

从版本库中删除文件。git rm前,需要先手动删除文件($ rm test.txt);git rm之后还要git commit:

提示:先手动删除文件,然后使用git rm <file>和git add<file>效果是一样的。

如果删错了,用git checkout(如:$ git checkout -- test.txt) 把误删的文件恢复到最新版本。从来没有被添加到版本库就被删除的文件,是无法恢复的!

12.       git push

把当前分支master推送到远程

如:git push ssh://john.ding@10.0.0.160:29418/platform/packages/apps/Music HEAD:refs/for/sprdroidq_trunk(同时推送到gerrit)

ssh://john.ding@10.0.0.160:29418/platform/packages/apps/Music为远程库,HEAD:refs/for/sprdroidq_trunk为当前分支master

问题记录:git push报错:missing Change-Id in commit message footer

原因:

情况一:本地刚下载的库,第一次提交会出现这种情况。

情况二:其他提交没有change_id,因为gerrit要求每个提交都要有change_id。

解决方法:https://www.cnblogs.com/zndxall/p/9603834.html

三、REPO的使用

1.  repo init -u <url> [OPTIONS]

在当前目录下初始化repo,会在当前目录生生成一个.repo目录,像Git Project下的.git一样,-u指定url,可以加参数-m指定manifest文件,默认是default.xml,.repo/manifests保存manifest文件。.repo/projects下有所有的project的数据信息,repo是一系列git project的集合,每个git project下的.git目录中的refs等目录都是链接到.repo/manifests下的。

如:repo init -u ssh://gitadmin@gitmirror.spreadtrum.com/platform/manifest.git b sprdroidq_trunk

2.  repo sync [PROJECT1...PROJECTN]

同步到最新版本库,默认同步所有仓库,可以指定project 。

3.  repo status

查看本地所有Project的修改,在每个修改的文件前有两个字符,第一个字符表示暂存区的状态。

letter

meaning

description

-

no change

same in HEAD and index

A

added

not in HEAD, in index

M

modified

in HEAD, modified in index

D

deleted

in HEAD, not in index

R

renamed

not in HEAD, path changed in index

C

copied

not in HEAD, copied from another in index

T

mode changed

same content in HEAD and index, mode changed

U

unmerged

conflict between HEAD and index; resolution required

每二个字符表示工作区的状态

letter

meaning

description

-

new/unknown

not in index, in work tree

m

modified

in index, in work tree, modified

d

deleted

in index, not in work tree

4.  repo manifest

查看清单文件

5.  repo branch或repo branches

查看所有分支

6.  repo diff

查看修改

7.  repo version

查看repo版本号

8.  repo prune <topic>

删除已经merge的分支

9.  repo abandon <topic>

删除分支,无论是否merged

10.  repo grep

在项目中进行内容查找

三、其他

AS导包快捷键alt+enter

Git与Repo 的使用的更多相关文章

  1. Git与Repo入门(转载)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAykAAADuCAIAAACyDd+sAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Xu ...

  2. 【转】Android源码学习(2)使用Git和Repo进行版本管理

    原文网址:http://blog.chinaunix.net/uid-26074270-id-2458828.html Android项目采用Git和Repo进行版本管理.在大多数情况下,Git都可以 ...

  3. 【转】Git与Repo入门----不错

    原文网址:http://www.cnblogs.com/angeldevil/p/3238470.html Git与Repo入门   版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工 ...

  4. How to get started with GIT and work with GIT Remote Repo

    https://www.ntu.edu.sg/home/ehchua/programming/howto/Git_HowTo.html#zz-7. 1.  Introduction GIT is a ...

  5. Git 和 Repo常用命令

    这篇博客总结的也不错: git常用及进阶命令总结 Git与Repo入门 一.初始環境配置 git config --global user.name "John Doe"git c ...

  6. Git Gerrit Repo User Manual

                      Git Repo Gerrit User Manual Revision History   Revision # Description Date Author ...

  7. Git和Repo管理使用简要介绍

    在Linux平台下进行Android系统项目开发时,需要Git或repo管理. 一. Git和Repo的区别: 1. Git:Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的 ...

  8. Git和Repo管理使用

    Git和Repo管理使用简要介绍 http://blog.csdn.net/stevenhu_223/article/details/8828130 多仓库代码管理器Repo的安装,使用以及服务器搭建 ...

  9. Git与Repo入门

    版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...

  10. Free git private repo

    今天在网上搜索了一下,发现除了github之外还有很多免费的git server,列表可以见 https://git.wiki.kernel.org/index.php/GitHosting 对比了一 ...

随机推荐

  1. 解决windows系统下ping,ipconfig不是内部或外部命令

    一般情况下,都是误删了系统变量path的值.解决方法:右击我的电脑 → 选择属性 → 选择高级系统设置 → 环境变量 → 在系统变量列表中,找到“path”环境变量双击,打开.在变量值这一栏检测下是否 ...

  2. JavaScript例子1-给网页中所有<p>元素添加onclick事件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. hdfs存储与数据同步

    两个hadoop集群之间同步数据 实例为dws的 store_wt_d表 一 文件拷贝 hadoop distcp -update -skipcrccheck hdfs://10.8.31.14:80 ...

  4. Java实现文本中的关键字高亮,匹配所有长度

    这个方法还不完整,后面想起来再看,直接放代码 public static String getHeightlightWord(String textWord, String key){ StringB ...

  5. 解决xshell连接不上阿里云服务器问题

    最近购买了阿里云服务器准备玩玩,但是使用xshell连接阿里云服务器时,系统一直提示“Connection established. To escape to local shell, press ' ...

  6. 十三,k8s集群web端管理工具dashboard部署

    目录 部署 dashboard 由于会被墙, 所以要加一步拉取镜像 正式开始安装dashboard 查看 开放访问 配置dashboard用户 1. token 令牌认证 创建一个 serviceAc ...

  7. win32 控件的使用

    我们建立的项目都是基于对话框的win32项目,和主窗口一样对话框也是窗口的一种类型所以区别不是很大,所以我们再下面讲一下控件的使用(里面不要使用char,要开始使用WCHAR,他的很多函数都是wcs. ...

  8. websocket 多聊天室功能

    websocket 类也是在网上找到的. 修改后可以用来创建多房间聊天室.可以发送图片表情,图片,及文字. 分享的代码,已经测试.可正常运行 HTML 端代码 <!DOCTYPE html> ...

  9. c++第三次作业:类的友元

    C++第三次作业:类的友元 1.友元的关系提供了不同类或对象的成员函数之间.类的成员函数与一般函数之间进行数据共享的机制.通俗的说友元关系就是一个类主动声明其他函数是他的朋友,可以使其获得特殊访问权利 ...

  10. 第11章 Spring Boot使用Actuator

    在生产环境中,需要实时或定期监控服务的可用性,spring-Boot的Actuator 功能提供了很多监控所需的接口. Actuator是Spring Boot提供的对应用系统的自省和监控的集成功能, ...