Android Studio中Git的使用及常用命令

Android Studio版本2.0

1,下载安装Git

下载地址
GitHub下载地址

2,Android Studio配置Git, File —> Settings —> Version Control —> Git —> Path to Git executable,选择Git安装目录下的bin目录下的git.exe

3,配置Android Studio 提交忽略文件:File —> Settings —> Version Control —> Ignored Files 点击右侧加号添加忽略文件或目录,往后提交,这些文件及目录会自动被忽略掉了。一般配置如下:

.gradle
.idea
*build
*.iml
local.properties

注:
1,Git和SVN不一样,Git的提交代码操作是先Commit,再Push,Commit是提交到本地仓库,Push是提交至远程仓库
2,如果.gitignore文件丢失,可以通过右键项目,New —> .i*,.ignore file 进行添加
3,Android Studio中的SVN使用及配置

常用命令

git常用命令.jpg
#查看用户名
git config user.name
#查看用户email    
git config user.email   

 # 配置全局用户名
git config --global user.name "xxx" 
# 配置全局email   
git config --global user.email "xxx@xxx.com"    

1.git status 显示工作区状态,是否有修改。
#显示文件状态
git status
#以精简的方式显示文件状态      
git status -s   

2.git add 把修改的文件添加到index中。
# 添加xxx,yyy文件至index
git add xxx,yyy     
# 添加当前目录下所有更改过的文件至index
git add .           

3.git commit 把代码提交到本地仓库
#把index中的代码提交到本地代码仓库
git commit -m "xxx" 
#用一个新的commit和上一个commit的合并起来,并把注释替换为abc  
git commit --amend -m "xxx"
#创建空的commit
git commit --allow-empty -m "这是一个空的提交"      

4.git branch 对分支的增、删、查等操作
#显示本地分支,当前分支会被星号标示
git branch              
#查看远程分支
git branch -r           
#查看本地所有分支的最后一次提交.
git branch -v           
#查看本地所有分支的最后一次提交,同时会显示对应的远程分支.
git branch -vv          
#创建名为xyz的分支(当你用这种方式创建分支的时候,分支是基于你的上一次提交建立的).
git branch xyz         
#安全删除xyz分支.
git branch -d xyz       
#强制删除xyz分支.
git branch -D xyz       

5. git checkout
#切换到xyz分支.
git checkout xyz  
#创建xyz并切换到xyz的分支.       
git checkout -b xyz     
#撤销对文件xyz 的修改
git checkout xyz    
#新建xyz分支,并同步到develop最新代码
git checkout -b xyz origin/develop  
#新建xyz分支,并同步到4a083615c这次提交后的代码(切换到4a083615c版本)
git checkout -b xyz 4a083615c 

5.1 git reset
#将xyz.c从索引区移除(但会保留在工作区)
git reset HEAD xyz.c  
#回退最近一次提交到工作区     
git reset HEAD^
#回退最近n次提交到工作区     
git reset HEAD^n     
#回退到最后一次提交状态,会覆盖掉当前工作区修改的代码        
git reset --hard
#版本回退到a77d8ac这次提交       
 a. git reset --hard a77d8ac    
 b. git push -f #强制推送到远程分支
 c. 团队其它人需要强制用远程master覆盖掉本地master
    git reset --hard origin/master

#从远程库develop分支把代码拉到本地仓库,不会进行merge
6.1 git fetch origin develop
#从远程库origin的develop分支上拉取代码到当前分支  
6.2 git pull origin develop 
 
#把远程库develop分支的改动合并到当前工作空间
7.git merge origin/develop  

7.1分支合并有冲突:
 a. git merge xx (合并xx分支到当前分支)
 b. 使用编辑器解决冲突 (解决冲突时修改的文件会显示在提交记录里,未修改的不会出现在提交记录里)
 c. git add . (使用 "git add <文件>..." 标记解决方案)
 d. git commit -m "merge note" (使用 "git commit" 结束合并)
 f. git push origin HEAD:refs/for/xyz  (把提交push至远程xyz分支) 

7.2分支合并没有冲突
 a. git merge xx (合并xx分支到当前分支)
 b. git commit --amend (无冲突的合并要用该命令,否则git push时会出现错误:no new changes。)
执行该命令会进入GNU nano窗口,类似于vi编辑状态,执行以下四个步骤即可
  1 修改注释 (不修改注释,请跳过)
  2 ctrl+O  (Write Out)
  3 回车  (确定Write Out)
  4 ctrl+X  (离开,提交完成)
 c. git push origin HEAD:refs/for/xyz  (把提交push至远程xyz分支)

8.git push
# push 所有branch
git push --all                          
# push 所有tag
git push --tags                         
#把本地仓库commit的代码push到远程xyz分支上(Gerrit 提交代码固定格式)
git push origin HEAD:refs/for/xyz           

#本地提交转移至更新后的上游分支中,能产生一个整洁的提交历史
9.git rebase                
 git rebase origin/develop  

10.git diff  (按q退出查看diff)
# 比较 local 和 index 的区别
git diff                
# 比较 index 和 workspace 的区别
git diff --cached       
# 比较 前一次commit 和 workspace 的区别
git diff HEAD^          

#显示 commit 的列表
11.git log              

#查看所有分支的所有操作记录(包括已经删除的commit和reset的操作)
12.git reflog           

13.git rm
#忽略跟踪该文件
git rm --cached --force app/app.iml
#递归删除xxx目录      
git rm -r xxx                           

14 gerrit push到远程仓库同一个提交
 1. git add .
 2. git commit --amend
 3 .ctrl+O
 4. 回车
 5. ctrl+x
 6. git push origin HEAD:refs/for/develop

15.
#同步远程新增或删除的分支
git fetch origin --prune
#删除没有git add的文件和目录
git clean -fd    

16.git stash
#暂存当前修改
git stash
#查看所有暂存                     
git stash list
#弹出stash@{0}暂存,该暂存会被丢弃              
git stash pop stash@{0}
#应用stash@{0}暂存,该暂存不会被丢弃     
git stash apply stash@{0}   

git克隆代码失败

Cloning into 'demo'... Unable to negotiate with x.x.x.x: no matching host key type found. Their offer: xxx
编辑ssh配置,.ssh/config,如果config文件不存在,则新建一个,加入以下内容

Host *
KexAlgorithms +diffie-hellman-group1-sha1
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
  • 失败问题1
    Cloning into 'demo'... Unable to negotiate with x.x.x.x: no matching host key type found. Their offer: diffie-hellman-group1-sha1
    解决办法
KexAlgorithms +diffie-hellman-group1-sha1
  • 失败问题2
    Cloning into 'demo'... Unable to negotiate with x.x.x.x: no matching host key type found. Their offer: ssh-rsa
    解决办法
HostkeyAlgorithms +ssh-rsa
  • 失败问题2
    Cloning into 'demo'... x.x.x.x: Permission denied (publickey)
    解决办法
HostkeyAlgorithms +ssh-rsa
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容