| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Git基本命令 -> 正文阅读 |
|
[开发工具]Git基本命令 |
配置Git 打开一个终端并运行这些命令: $ git config --global user.name "My Name" $ git config --global user.email myEmail@example.com 设置我们的用户名和电子邮件。 使用Git 创建一个文件夹右键点击Git Bash Here,然后逐步输入以下命令 ?$ git init:用来初始化一个空的 $ git status命令表示:文件,文件夹在工作区,暂存区的状态 $ vim hello.txt :编辑hello.txt文件,点击i或者a转换为输入状态,输入完毕点击Esc然后点击:wq保存退出 $ cat hello.txt查看文件内容 此时再输入$ git status显示hello.txt为红色 ?$ git add hello.txt:Git有一个“暂存区”的概念。你可以把它想象成一个空白的画布,它保存着你想要提交的变化。它开始是空的,但你可以用命令添加文件(甚至是单行和部分文件)git add,最后提交所有的文件(创建一个快照)git commit。 在我们的情况下,我们只有一个文 件,所以添加上面创建的这个文件:$ git add hello.txt 如果我们想在目录中添加所有内容,我们可以使用:$ git add -A $ git commit -m "first commit" hello.txt:一个提交表示在给定的时间点我们的仓库的状态。这就像一个日志记录,我们可以回顾一下,看看我们拿什么。要创建一个新的提交,我们需要至少有一个更改添加到暂存区域 注意:每次修改完文件都要使用$ git add hello.txt,$ git commit -m "first commit" hello.txt这两个命令 ?$ git reflog: $ git log:检查提交之间的差异每个提交都以数字和符号的字符串形式存在唯一的ID。要查看所有提交及其ID的列表,我们可以使用git log ?$ git reset --hard a7b19ea:先用git log命令找到需要回滚的分支版本,再通过git reset命令重置当前版本为指定的分支版本 $ git branch -v:查看当前分支 $ git branch hot-fix:创建一个分支,每个存储库的默认分支称为 主(Master)分支。要创建更多分支,请使用以下 $ git checkout hot-fix:切换分支 $ git merge hot-fix:在master分支上合并hot-fix分支 注意:产生合并冲突时使用$ vim hello.txt把<<<<<<< HEAD,>>>>>>> hot-fix,======= 产生合并冲突的原因:简单来说就是本地修改的文件和目标远程库的同一个文件都有修改。这时无论是pull丶push丶merge时都会产生冲突。 Git冲突情况举例: 1、不同分支下的merge 比如在不同分支下进行分支合并时,我们在本地修改了a文件并把a文件的修改push到了test分支下,接着我们切换到master分支下将test分支上的修改合并到当前master分支下时,如果master分支下的a文件也有修改的话,这时在进行merge也会产生冲突。(因为这个两个分支是不同步的,两个分支下的同一个文件都有修改) 2、同一个分支下的pull或push 比如在同一个分支下,对本地的a文件做出了修改,此时我们在进行pull或push时如果远程分支下下的a文件也有修改,那么代表本地和远程分支的代码是不同步的,此时也会引起冲突。 Git冲突解决方案: 要想不产生冲突的习惯是:修改文件之前先git pull,获取远程最新的代码,同步完了之后再对代码进行修改;亦或者事先和同时操作代码的同事沟通,这样可以大概率的避免冲突的产生。 方法一(推荐使用): git pull 出现冲突后丢弃本地冲突文件修改,采用远程文件覆盖本地文件git checkout [文件路径]例:git checkout test/src/main/resources/spring-shiro.xml 方法二: git pull 出现冲突后可以暂存本地修改git stash ,然后git pull 更新代码,git stash list 可查看暂存记录列表,释放本地暂存 git stash apply stash@{0} ,出现冲突文件,找到并解决,然后可以提交git add . 加入索引库,然后本地提交git commit -m '注释' 最后git push到远程。 方法三: 1、git pull更新代码,发现error: Your local changes to the following files would be overwritten by merge:pom.xmlPlease commit your changes or stash them before you merge.这说明你的pom.xml与远程有冲突,你需要先提交本地的修改然后更新。 2、git add pom.xml git commit -m '冲突解决' 提交本地的pom.xml文件,不进行推送远程 3、git pull 更新代码Auto-merging pom.xmlCONFLICT (content): Merge conflict in pom.xmlAutomatic merge failed; fix conflicts and then commit the result.更新后你的本地分支上会出现 (develop|MERGING)类似这种标志。 4、找到你本地的pom.xml文件,并打开你会在文件中发现<<<<<<< HEAD ,======= ,>>>>>>> 这种标记。 <<<<<<< HEAD和=======中间的是你自己的代码, ======= 和>>>>>>>中间的是其他人修改的代码自己确定保留那一部分代码,最后删除<<<<<<< HEAD ,======= ,>>>>>>>这种标志。 5、git add pom.xmlgit commit -m '冲突解决结束'再次将本地的pom.xml文件提交。 6、git push将解决冲突后的文件推送到远程。 $ git remote add hello-world https://github.com/Tamic/novate.git:连接到远程存储库,hello-world为别名,https://github.com/Tamic/novate.git为项目地址 $ git remote -v:查看是否连接存储库 $ git push hello-world master:把我们的本地提交转移到服务器上,hello-world为别名 $ git pull hello-world master:如果代码仓库进行了更新,则可以使用这个命令下载更改? $ git clone https://github.com/dai1222/hello-world.git:可以在Github上查看和浏览远程仓库库,也可以在本地下载,并使用以下git clone命令获得项目的完整工作副本 $ git clone -b master https://github.com/dai1222/hello-world.git:使用这个命令获取指定分支的副本
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/23 14:27:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |