git的本地仓库和远程仓库是什么意思?常见的代码冲突怎么解决
本地仓库 就是你电脑上的一个仓库;
远程仓库就是在公网服务器上的仓库。
git离线提交的原理就是:你修改的文件,保存动作是存放在本地硬盘,提交到本地仓库,就是讲文件修改信息保存到git,git会记录文件历史版本。远程推送就可以将本地仓库修改的文件推送到远程仓库去,这里说的远程仓库可以是github,gitlab之类服务器上的仓库。相当于有多份代码分别放置在 你电脑 服务器
具体的可以百度。至于冲突解决,先弄清楚文件冲突原理,基本是同一行存在两个提交,而且内容不一样导致,只需要打开冲突文件,整理冲突标记,统一文件内容保存,然后更新文件状态为冲突已解决 即可。
第一次回答,尽量有问题百度搜索。这样更锻炼解决问题能力。
1
准备,下载git到你的电脑上,下载地址: http://git-scmcom/downloads
安装,直接下一步下一步就好,记得下载位置就好,配置的时候要用
2
在studio中设置git插件:File->Setting->Version Control->Git,添加您刚刚安装的git地址目录,例如: C:\Program Files\Git\bin\gitexe ,
然后可以点击Test测试一下,如下图:那么你就设置成功了。
3
初始化git项目(git init),操作如下:VCS->Enable Control Integration->Select "Git"
4
为git添加remote,在这一步中,studio没有为我们提供可视化的GUI,得用Git工具了。找到并打开git安装目录下面的Git Bash,将目录切换到项目的目录,然后输入git添加remote的命令,例如:git remote add origin "https://githubcom/xxx/xxxgit"
5
将代码添加到VCS(git add),选中要提交的文件->VCS->Git->Add,
6
提交变化(git commit),VCS->Commit Changes, 在提交的时候可以选择Commit and Push,就可以直接push到服务器。
7
Git Push,VCS->Git->Push
最后,如果要是clone project到studio
Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git的主要功能:
1 检查电子邮件或其他方式来检查提交状态的平均开发人员。
2 修补程序并解决冲突(您自己或要求开发人员稍后重新提交它,如果它是一个开源项目,请确定哪些修补程序可以工作,哪些不能)。
3将结果提交到公共服务器,然后通知所有开发人员。
扩展资料:
Git的优缺点:
优点:
1 适合分布式开发,强调个人。
2 公共服务器压力和数据量不是太大。
3快速和灵活。
4任何两个开发人员之间的冲突都可以很容易地解决。
5 离线工作。
缺点:
1 数据很少(至少是中文)。
2 学习周期相对较长。
3不符合传统思维。
4 可怜的代码的机密性。一旦开发人员克隆了整个库,所有代码和版本信息都可以完全公开。
这些开发中很常见的问题,所以git的取消提交,回退甚至返回上一版本都是特别重要的
大致分为下面2种情况:
1没有push
这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题,准备取消提交,用到下面命令
reset
git reset [--soft | --mixed | --hard
上面常见三种类型
--mixed
会保留源码,只是将git commit和index 信息回退到了某个版本
git reset 默认是 --mixed 模式
git reset --mixed 等价于 git reset
--soft
保留源码,只回退到commit 信息到某个版本不涉及index的回退,如果还需要提交,直接commit即可
--hard
源码也会回退到某个版本,commit和index 都回回退到某个版本(注意,这种方式是改变本地代码仓库源码)
当然有人在push代码以后,也使用 reset --hard <commit> 回退代码到某个版本之前,但是这样会有一个问题,你线上的代码没有变,线上commit,index都没有变,当你把本地代码修改完提交的时候你会发现权是冲突
所以,这种情况你要使用下面的方式
2已经push
对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致你要用到下面的命令
revert
git revert用于反转提交,执行evert命令时要求工作树必须是干净的
git revert用一个新提交来消除一个历史提交所做的任何修改
revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新(这里不会像reset造成冲突的问题)
revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看
git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61
通常,前几位即可
git revert c011eb3
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit
看似达到的效果是一样的,其实完全不同
第一:
上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突但是revert 并不会
第二:
如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里但是revert 方向提交的commit 并不会出现在历史分支里
第三:
reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的
1在网上下载一个git软件并安装
2生成ssh
在桌面点击右键,选择Git Bash Here,进入操作界面,输入"ssh-keygen -t rsa -b 4096 -c"@com(在codingnet注册时的邮箱)""命令。
下一步就是新建文本文档命名改成"id_rsa",继续操作设置密码完成后,再输入命令“cat ~/id_rsapub”命令,生成ssh
用文本文档打开ssh获取秘钥,复制里面的内容,然后在codingnet中账户设置里把ssh的内容粘贴就行了,其他自己设置就好。这样就配置完成。
3创建本地仓库
在本地创建一个文件夹,作为你上传代码的本地仓库,接下来就要把这个仓库与coding服务器端进行配置
在这个文件夹内点击右键,选择Git Bash Here,首先要初始化本地仓库,输入"git init"。
然后打开codingnet在里面自己所创建的代码仓库的地址复制,在git中输入命令"git clone +仓库地址(右键鼠标粘贴)",例:http://
这时会把codingnet中的代码仓库里的东西全部克隆在你的电脑中(注:看你是否有用cd进入其他盘,否则默认克隆在桌面)
4代码推送
把需要上传的文件放进上述克隆下来的文件夹中,然后在git用命令进入文件夹,进而再检查仓库状态命令"git status"
如果codingnet上没有该文件则字体会显示红色,用命令"git add "选中全部上传的文件。
完成上述步骤后,输入命令"git commit -m "自己标识文件注释是什么"",
然后输入"git push origin master"命令推送到云端,origin是服务器,master是分枝。
5代码下载
原本你已经有克隆过以前的数据,然后另外有人上传一些新的文件的时候,就可以使用命令"git pull origin master"更新最新的仓库。
在使用android studio的Git来进行版本控制时,Android studio可以直接可视化的新建本地库,连接到远程库,提交,获取等操作。下面来说一下在android stuido下git的基本使用,以及遇到的一些问题的解决方法。
1、从git上拉取代码(如图):
然后在弹出框中输入地址,clone就可以了。
以下是将本地代码,上传到本地仓库,提交的服务器的操作。
2、新建本地库
如图操作之后,提示选择目录,这时候一定要选择项目的根目录(容易出错),否则以后从服务器直接拉取容易出错。当成功创建本地库之后,所有代码会由白色变为红色,意思是没有提交到本地仓库。在每个文件夹的根目录都会有一个gitignore文件,这是用来忽视不想提交到仓库的代码的。
在本地仓库的根目录下会有一个隐藏的文件夹git。这就是我们的本地仓库,我们会把修改过的代码提交到仓库。如果我们想删除本地的仓库,直接删除这个git文件夹,然后在版本控制设置里面,把这个本地仓库删除就行了(如图):
3、将代码上传本地仓库
当把所有不想上传的代码忽略之后,右击项目,选择git-add就直接把代码执行了git的add操作,现在还并没有提交到本地仓库。点击面板上的按钮,commit,就把代码提交到了本地仓库
4、将本地仓库代码提交到远程服务器
如上图操作,在弹出的对话框中点击push,就成功的将本地代码提交到了服务器。
这时候如果想要删除上传服务器的地址,直接在android studio上操作是行不通的,这时候需要命令行来操作。
打开项目的根目录,右键Git Bash Here,输入命令git remote rm origin(最后一个是在连接远程时命名的),就可以将上传的服务器地址删除掉了。
输入命令git remote add origin https可以添加上传服务器的路径,当从as中上传的时候,会有提示框显示选择上传路径。如果添加过了一个路径,再添加,需要一个新的命名如git remote add neworigin https
以上就是在android studio上使用git的最基本的操作,多操作几遍就会发现,git是如此的方便、简单、快捷、实用
0条评论