美文网首页
git的一些操作

git的一些操作

作者: 子心_ | 来源:发表于2019-07-10 09:09 被阅读0次

    rm file.txt删除的只是工作区的,如果没有手动git add file.txt,就没有将删除操作添加到暂存区。现在直接git commit的话,新生成的版本库里面还是有file.txt的,可用git checkout -- file.txt恢复,而用git rm file.txt删除的自动将删除操作add到了暂存区。这时候如果git commit,新生成的那个版本库,里面就没有了file.txt。只能用版本id号恢复,即git reset --hard id

    在任何分支的工作区修改后,不commit可以切换到其他分支包括master,也可以再切回去。
    这就证明,未commit的工作区文件和stage文件是可以灵活地在且仅在任一branch存在的。这是前提。

    1. 在工作区做了修改,提交到DEV的分支,再切换回master——
      这时候,对master来说,工作区没有任何未提交的修正(因为所有修正都已经commit)。则工作区内容应该是与master分支最后一次提交的内容一致。(处于任何其他时间点,都意味着工作区可能存在修正,这就出现了矛盾)
    2. 在工作区做了修改,没有提交到DEV分支,即切换回master——
      这个时候,对master来说,工作区有了修正,那么就保持工作区的现有状态即可。

    pull:本地 <-- 远程
    push:本地 --> 远程
    本质上都是同步commit
    如果你本地落后远程,必然要pull
    如果你本地超前远程,必然要push

    git add test.txt 
    git commit -m 'add test.txt'
    rm test.txt                误删了
    git checkout -- test.txt                恢复了
    然而
    git rm test.txt               用git命令删除一个文件
    git commit -m 'remove test.txt'           并且确认了这个删除
    git checkout -- test.txt           再用这个命令试图恢复是会报错
    但是,
    可以用下面的命令去某一个git commit之后的版本
    git log --pretty=oneline           看看目前都有哪些版本? 坐时光机回去
    git reset --hard HEAD^      回到上一个版本
    

    相关文章

      网友评论

          本文标题:git的一些操作

          本文链接:https://www.haomeiwen.com/subject/yygtkctx.html