• git使用命令记录


    一,两个概念:
    1.工作区:
    你电脑里能看见的目录,比如一个项目文件夹就是一个工作区
    2.版本库
    工作区(该项目的文件夹)中有一个隐藏文件 .git ,就是git的版本库。(这个文件默认是隐藏,Ctrl+h 显示)
    版本库中有:暂存区,本地仓库dev分支
    git add 把工作区修改的文件添加到暂存区,
    (如果修改的文件,必须先git add ,如果直接commit,会发现提交不了。该文件还是蓝色的)
    git commit 暂存区的文件提交到当前分支(本地仓库)。只负责把暂存区的修改提交
    (commit提交有原子性,即所有文件要么全部提交成功,要么全部失败)
    git push 把本地代码推送到远程仓库的分支
    二,管理修改
    git跟踪并管理的是修改,而不是文件
    修改:添加,删除一行,新建文件,删除文件都是修改
    例如:
    对同一个文件,第一次修改-->git add-->第二次修改-->git commit
    注意:只有第一次修改的被提交了,第二次修改的没有添加到暂存区,所以没有commit
    三,撤销修改
    1.修改了工作区的文件后,没有 git add,也没有git commit.你想撤销修改
    你可以通过Ctrl+z 撤回(时间长了不能完全撤销)
    也可以通过git checkout --readme.text 撤销修改。把readme.text文件在工作区的修改全部撤销
    ********很重要(可以用来撤销配置文件)*****
    git checkout -- /home/yaming/Desktop/workspace/Multi-MKBoot/mk-bean/src/main/java/com/mk/model/entity/ShipRecord.java

    2.修改了工作区的文件后,执行了git add,没有执行git commit。你想撤销修改
    你可以通过 git reset HEAD readme.text 把暂存区的修改撤销掉,重新放回工作区。再撤销工作区的修改
    *****执行两条命令******
    git reset HEAD /home/yaming/Desktop/workspace/Multi-MKBoot/mk-bean/src/main/java/com/mk/model/entity/ShipRecord.java

    git checkout -- /home/yaming/Desktop/workspace/Multi-MKBoot/mk-bean/src/main/java/com/mk/model/entity/ShipRecord.java

    3.修改时发生了冲突
    比如你修改了数据库的配置文件resource.xml,此时你还没有git add,也没有git commit,而你拉代码时,别人的代码也修改了这个文件resource.xml,并且push到远程仓库了,你拉代码(把他修改的拉到了你的版本库)时就会出现冲突(同时修改了同一个文件)。
    解决:先 git commit 你修改的文件(除了resource.xml)。(把没有冲突的文件先提交到版本库里)
    然后:git checkout -f (用版本库里的版本替换工作区的版本)。
    注意:你在resource.xml文件里的修改全部没有了,你现在工作区的resource.xml文件就是别人修改过的resource.xml文件

    3.删除
    一般情况下,我们通常直接在文件管理器中把没有用的文件删除,手动删除,或rm命令
    $:rm test.txt
    这是删除了工作区的文件,通过git status可以查看哪些文件被删除了
    然后通过git commit提交。文件就从版本库中被删除了
    万一删错了怎么办?
    版本库(.git文件夹)里没有删除,可以用git checkout -- test.txt恢复
    git checkout 就是用版本库里的版本替换工作区的版本(注意是替换)
    四,分支管理
    git branch 查看分支
    git branch <name> 创建分支
    git checkout <name> 切换分支
    git checkout -b <name> 创建+切换分支

    五.退回上一个版本。

    情景:项目拉下来后,需要修改链接数据库配置文件。push代码时,该配置文件不提交。万一不小心提交了怎么办?此时已经commit了

    解决:退回到上一个版本,此时还没有关闭

    git reset --hard HEAD^
    建议:先把修改过的文件拷出来,再退回到上一个版本,然后再拷进来。避免之前修改的文件全退回去,记不住已经修改的

    工作区和版本库


    修改工作区后,git add 把工作区修改的文件添加到暂存区


    git commit 把暂存区文件添加到分支



     
  • 相关阅读:
    8bit数据 转换为 16bit数据的四种方法
    可变长度的结构体定义
    【转】typedef和#define的用法与区别
    编程事项
    FreeRTOS不允许在中断服务程序和临界段中执行不确定的性的操作
    低优先级任务在执行过程中高优先级任务在干什么
    使用FreeRTOS在SD卡驱动使用非系统延时导致上电重启不工作的情况
    PMOS 与 NMOS
    keil优化等级设置
    #define用法之一
  • 原文地址:https://www.cnblogs.com/inspred/p/7598836.html
Copyright © 2020-2023  润新知