• GIT结合android studio使用总结


    使用GIT请阅读(有git基础可略过) git指引 http://www.bootcss.com/p/git-guide/ 

    一、 下载git

       http://git-scm.com/download/  

    二、 安装

        全部默认配置即可。  

    三、 配置

        

        运行Git Bash   

    (一) 配置用户信息: 

      输入以下命令: 

    git config --global core.ignorecase false

    git config --global user.name "YourName"   

    git config --global user.email " YourName@mindmini.com"

    (二) 生成密钥

    ssh-keygen -t rsa -C "YourName@mindimi.com" -f ~/.ssh/YourName

     

     

      此时会 ~/.ssh 目录下生成YourName 和YourName.pub 两个文件。

      为了开通git用户,请把YourName.pub,发送至GIT 管理员。

      以上配置用户信息和生成密钥的过程是为了便于管理用的,自己平时用的话可以略过此步骤。

    四、使用android studio中的vcs工具初次上传初始代码到一个新的远程仓库。

      1、点击AS菜单栏中【VCS】,选择“Create Git Repository”,从而创建出与AS关联该项目的一个本地仓库。

                                图1

    2、点击AS菜单栏中【VCS】,选择“GIT”,接着选择“Remotes...”,至此在弹窗中点击加号新建关联到远程库,在图3的弹窗中,1处的名称要记住了,后面会用到;2处是你远程库的链接地址。

                                    图2

                    

                                    图3

    3、选中要上传的项目右击,选择“Git”,在选择“Add”,在选择“Commit Directory......”。

    4、在AS的Terminal窗口中输入命令:git branch --set-upstream master origin/master 。此命令中的“origin”就是步骤2中所提到的名称;“ master”为远程库的分支名称。

    5、此步是因为远程库中有个"README.md"文件,而你的本地库中没有,所以用此步来合并代码。在AS的Terminal窗口中输入命令:git pull --rebase origin master。此命令中的“origin”就是步骤2中所提到的名称;“ master”为远程库的分支名称。

    6、点击工具栏中的同步代码的图标(向上的箭头),要选择"commit and push"。

    至此已经将代码同步到了远程库中。

    五、GIT操作:

      1、删除远程库上的文件或者文件夹步骤说明。

        1)先把代码更新到跟远程库一样。

        2)git rm 文件名               注:用你要删除的文件名替换掉“文件名”。此命令是删除文件

          git rm r 文件夹名       注:用你要删除的文件夹名替换掉“文件夹名”。此命令是删除文件夹

          git rm --cached "文件路径"            注:不删除物理文件,仅将该文件从缓存中删除。应用场景:有文件不小心commit到了服务器。

          git rm --f "文件路径"     注:不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。

        3)git commit -m"自己备注的删除说明"

        4)git push origin master

        执行完这四步就可以保留下本地的文件或者文件夹不变,只是删除了本地库和远程库的文件或者文件夹。

    六、使用vcs进行pull和push操作出现错误

      错误提示内容:Could not read from remote repository.或者Invalid user or password.

      处理办法:file-->setting......-->version control-->git-->SSH executable:Native。如下图:

    七:git的回滚或撤销:

    1、在工作区的代码

    git checkout -- a.txt   # 丢弃某个文件,或者
    git checkout -- .       # 丢弃全部

    注意:git checkout – . 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。当然,如果你之前压根都没有暂存或commit,那就是回到你上次pull下来的样子了。

    2、代码git add到缓存区,并未commit提交

    git reset HEAD .  或者
    git reset HEAD a.txt

    这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化

    3、git commit到本地分支、但没有git push到远程

    git log # 得到你需要回退一次提交的commit id
    git reset --hard <commit_id>  # 回到其中你想要的某个版
    或者
    git reset --hard HEAD^  # 回到最新的一次提交
    或者
    git reset HEAD^  # 此时代码保留,回到 git add 之前

    4、git push把修改提交到远程仓库
    1)通过git reset是直接删除指定的commit

    git log # 得到你需要回退一次提交的commit id
    git reset --hard <commit_id>
    git push origin HEAD --force # 强制提交一次,之前错误的提交就从远程仓库删除

    2)通过git revert是用一次新的commit来回滚之前的commit

    git log # 得到你需要回退一次提交的commit id
    git revert <commit_id>  # 撤销指定的版本,撤销也会作为一次提交进行保存

    3) git revert 和 git reset的区别
    - git revert是用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留;
    - git reset是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除

    八、使用Android studio创建分支,并上传到远程库。

    1、如下图,点击标注1:创建本地分支。成功后出现在标注2,此时标注3是空白的,因为远程库没有该分支,此时使用vcs都是失败的。需要执行命令:git push --set-upstream origin 分支名   

    然后使用vcs就没有问题了。

    九、git打标签(tag)

    git tag的用法

    我们常常在代码封办时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的

    git的tag功能

    git 下打标签其实有2种情况

    • 轻量级的:它其实是一个独立的分支,或者说是一个不可变的分支.指向特定提交对象的引用
    • 带附注的:实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证,电子邮件地址和日期,一般我们都建议使用含附注型的标签,以便保留相关信息

    所以我们推荐使用第二种标签形式

    创建tag

    git tag -a V1.2 -m 'release 1.2'

    上面的命令我们成功创建了本地一个版本 V1.2 ,并且添加了附注信息 'release 1.2'。请保持tag名和branches名不要重名。

    查看tag

    git tag

    要显示附注信息,我们需要用 show 指令来查看

    git show V1.2

    但是目前这个标签仅仅是提交到了本地git仓库.如何同步到远程代码库

    git push origin --tags

    如果刚刚同步上去,你缺发现一个致命bug ,需要重新打版本,现在还为时不晚.

    git tag -d V1.2

    到这一步我们只是删除了本地 V1.2的版本,可是线上V1.2的版本还是存在,如何办?这时我们可以推送的空的同名版本到线下,达到删除线上版本的目标:

    git push origin :refs/tags/V1.2

    如何获取远程版本?

    git fetch origin tag V1.2

    VCS操作失败

    1、错误:Could not read from remote repository
      解决方法:如下图。
            将:SSH executable的值设置为Native。
     

     

     

    鸣谢:

       1、 https://www.cnblogs.com/lao-liang/p/5019549.html

        2、http://blog.csdn.net/u010316858/article/details/50053387

     

         

     

       

     

     

     

     

     

  • 相关阅读:
    HttpWebRequest用ip代理Timeout和ReadWriteTimeout失效不听话问题
    C# CefSharp CachePath 碰到的坑
    连接gitee的两种方式
    .net core 5.0 之使用多环境
    .net core 第三方登录关于AddOAuth
    .net core 5.0 之IHttpClientFactory
    .net core 5.0 之 五种Filter
    .net core 5.0 之自定义中间件
    有用的和不为人知的Java特性
    Google Authenticator 备份密钥/导出
  • 原文地址:https://www.cnblogs.com/qynprime/p/8044427.html
Copyright © 2020-2023  润新知