zoukankan      html  css  js  c++  java
  • git使用总结

    1.把目录初始化成仓库: git init
    2.添加文件: git add readme.txt
    3.把文件提交到仓库: git commit -m "wrote a readme file"
    4.查看仓库当前动态: git status
    5.查看差异: git diff readme.txt (工作目录区与仓库的区别)
    6.查看历史记录: git log

    7.回退版本: git reset --hard HEAD^
    HEAD表示当前版本,上一个版本就是HEAD^,
    8.回退到最新版本: git reset --hard 3628164
    9,如果关闭电脑,忘记回退到最新的版本: git reflog用来记录你的每一次命令。
    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

    工作区(Working Directory)、 暂存区(stage或者叫index)、HEAD区
    git跟踪的只是修改,并不是文件。。

    10.丢弃工作区的修改: git checkout --file
    两种意思:
    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    11.把暂存区的修改撤销掉,重新放回工作区: git reset HEAD file
    git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

    小结:
    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

    12.删掉文件:
    在管理器中,把没用的文件删掉: rm test.txt
    从版本库中删除该文件,那就用命令git rm删掉: git rm test.txt
    提交文件:git commit

    (先有本地仓库再建立远程仓库)
    13.本地仓库与远程仓库关联: git remote add origin git@github.com:michaelliao/learngit.git(上面的michaelliao替换成你自己的GitHub账户名)
    本地库的所有内容推送到远程库上: git push -u origin master(第一次推送,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来)
    以后推送: git push origin master

    (先有远程仓库再建本地仓库)
    14.先建立远程仓库。
    git clone git@github.com:michaelliao/gitskills.git (上面的michaelliao替换成你自己的GitHub账户名)

    15.创建分支,然后切换到分支: git checkout -b dev
    相当于: git branch dev && git checkout dev
    16.查看分支: git branch
    17.合并分支: git merge dev(git merge命令用于合并指定分支到当前分支)
    18.删掉分支: git branch -d dev
    当合并时出现冲突,必须手动解决问题,再提交。。
    丢弃一个没有被合并的分支: git branch -D <name>强行删除

    19.Git stash,把当前工作现场“储藏”起来,等以后恢复现场后继续工作:(用于保护工作目录的修改)
    等bug修改好了后,查看保存的现场: git stash list
    工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
    一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
    另一种方式是用git stash pop,恢复的同时把stash内容也删了:

    20.查看远程库的信息: git remote
    显示更详细的信息: git remote -v
    推送分支: git push origin dev

    21.抓取分支:
    要在dev分支上开发,就必须创建远程origin的dev分支到本地: git checkout -b dev origin/dev
    推送分支: git push origin dev
    推送失败,因为最新提交和你试图推送的提交有冲突,解决办法,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:
    拉取分支: git pull
    git pull也失败,原因是没有指定本地dev分支与远程origin/dev分支的链接,解决:git branch --set-upstream dev origin/dev
    再pull。

    总结:
    多人协作的工作模式通常:
    首先,可以试图用git push origin branch-name推送自己的修改;
    如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    如果合并有冲突,则解决冲突,并在本地提交;
    没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

    22.打标签: git tag v1.0(默认标签是打在最新提交的commit上的)
    查看所有标签: git tag
    给对应的commit_id打标签: git tag v0.9 6224937
    注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>查看标签信息:git show v0.9
    还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:git tag -a v0.1 -m "version 0.1 released" 3628164

    23.删掉标签: git tag -d v0.1
    因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
    如果要推送某个标签到远程,使用命令git push origin <tagname>: git push origin v1.0
    一次性推送全部尚未推送到远程的本地标签: git push origin --tags

    如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除: git tag -d v0.9
    然后,从远程删除。删除命令也是push,但是格式如下: git push origin :refs/tags/v0.9

  • 相关阅读:
    codeforces 616B Dinner with Emma
    codeforces 616A Comparing Two Long Integers
    codeforces 615C Running Track
    codeforces 612C Replace To Make Regular Bracket Sequence
    codeforces 612B HDD is Outdated Technology
    重写父类中的成员属性
    子类继承父类
    访问修饰符
    方法的参数
    实例化类
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/8017708.html
Copyright © 2011-2022 走看看