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

  • 相关阅读:
    LCA模板
    bzoj1660:[Usaco2006 Nov]badhair乱头发节
    不老的传说
    田忌赛马
    最短路径问题
    hdu2421-Deciphering Password-(欧拉筛+唯一分解定理+积性函数+立方求和公式)
    hdu1215-七夕节-(埃氏筛+唯一分解定理)
    迷宫-(bfs)
    区间或和-(位运算)
    海啸-(矩阵前缀和)
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/8017708.html
Copyright © 2011-2022 走看看