美文网首页程序员
git在日常工作中几种常见的使用情况

git在日常工作中几种常见的使用情况

作者: 澳利澳先生 | 来源:发表于2017-12-01 17:24 被阅读0次

    1、暂存某个文件(从工作区添加到缓存区):commit之前

    对于修改的,删除的,新增的都是使用命令:git add

    单个文件的添加: git add 添加到暂存区。

    批量文件的添加:如果要一次添加所有(修改的,删除的,新增的)文件:git add --all或者git add -A命令;


    2、撤销未提交修改(未暂存或暂存的):commit之前

    (一)、对于工作区的文件,即还未暂存的,如果已经对某个文件(如example.cpp)进行了很多处的修改,后来发现不用修改想撤销当前所有的修改,如果手动在文件中通过Ctrl+Z或者直接改回去都很麻烦且容易漏掉,如果想直接保持和git远程中提交版本一致,这时就只需要执行如下命令:

            git checkout -- path/example.cpp       //注意:该命令只对unstaged changes(未暂存)(工作区)的文件起作用。

            不能直接使用:git checkout命令,后面后面必须接参数。所以只能一个一个的撤销。

            这样就可以把对example.cpp的未提交的修改,撤销了。example.cpp的版本就和远程库中一样,或者和本地上次提交的一致了。

    *(二)、对于缓存区的文件,即是已经暂存了的文件(staged changes),需要先把它从暂存区迁移到工作区,使用命令如下:

            git reset HEAD path/example.cpp      //注意:该命令只对staged changes(暂存区)的文件起作用。

            后面不接文件路径:git reset HEAD      //表示把整个暂存区的所有文件变成未暂存状态(工作区),对所有文件都起作用,如果是新文件也会重新编程未跟踪状态。

    然后,可以继续使用上面第一点的命令撤销修改。

    *(三)、对于有很多文件的情况,想一次性全部撤销所有修改。

            首先,用git add --all命令把所有文件添加到暂存区。

            然后,用git reset --hard HEAD命令直接把所有文件从暂存区直接丢弃撤销掉。

            这样就可以批量撤销所有文件的修改了,而不用git checkout -- 一个一个文件的去撤销了。


    3、提交文件(commit):push之前

    一般使用方式是:git commit -m "此次提交的说明注释"。// 该命令只提交暂存区的内容。

    如果想跳过git add 命令,直接从未暂存区内开始提交所有文件(新增的文件除外),可以使用命令:

    git commit -a -m "提交说明"        // 对工作区的所有修改的、删除的文件直接提交。


    4、撤销的已经提交的文件:push之前

    页分两种情况:

    (一)、一种是撤销到暂存区:

            git reset --soft HEAD^://把最后一次提交(还没push)撤销掉,并直接把该次提交的文件改成到暂存状态。

    (二)、一种是直接撤销修改:

            git reset --hard HEAD^ : //这会把最后一次提交(还没push)直接撤销掉,并且会直接丢弃这些文件的修改。

    所以:注意:一般最好不要随便使用--hard选项。

    (三)、这种是直接撤销掉并创建一次新的提交,只待push:

            git revert HEAD : //这会把最后一次提交(还没push)直接撤销并自动创建了一次新的提交但还没push。


    5、推送(push)到远程更新文件:一次完整的更新结束。

    一般常用的方式是: 直接git push就行了。前提条件是:指定了默认主机,并且当前分支和远程分支存在追踪关系。

    git push命令的完整形式是:git push<远程主机名> <本地分支名>:<远程分支名>

    表示把本地的某个分支推送到指定的远程主机上的某个远程分支上。

    如:git push origin local_master:master        //表示把本地的local_master分支推送到远程orgin主机上的master分支上。

    其实不用这么麻烦,有几种省略方式:

        git push origin ://当前分支与远程分支存在追踪关系,表示直接把当前分支推送到远程orgin主机的对应分支上。

        git push origin :remote_dev    :// 推送一个空的本地分支到远程的remote_dev分支上,表示删除这个远程分支。等同于:git push origin --delete remote_dev

        git push -u origin master ://当把本地仓库和远程仓库关联后第一次推送时要用这个命令。


    6、撤销已经push了的文件:

    也分两种情况:使用的是revert命令:它的实质是把某次push再反向写回去,并创建了一个新的提交。

    (一)、直接撤销并自动创建一次新的提交,等待push :

                git revert HEAD://撤销最后一次push.

                git revert commit_ish  :// 撤销具体某一次push. commit_ish是某次提交的hash码。

    (二)、直接撤销到暂存区,可重新修改再commit:

                git revert -n HEAD ://撤销最后一次提交push.

                git revert –n commit-ish  : //撤销某次完整提交(指已经push了的),并且不会自动生成一个新的回滚提交,而是把这次提交回退到暂存状态,可以重新修改后再提交。


    7、关于git检测大小写的问题。

    git默认是大小写不敏感的,所以当你把某个文件夹或文件名改变了大小写时,git是识别不出来的。

    怎样让git识别大小写呢? 可使用命令:git config core.ignorecase false

    改命令需在特定的仓库的git bash下使用。


    8、To be continue.....

    相关文章

      网友评论

        本文标题:git在日常工作中几种常见的使用情况

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