git

参考  https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  1. 版本回退     git reset --hard HEAD^  或者git reset --hard 版本号前几位
  2. 查看命令历史  git reflog
  3. 撤销修改    git checkout -- readme.txt 

    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    总之,就是让这个文件回到最近一次git commitgit add时的状态。                                                git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

  4. 把暂存区的文件重新放回工作区 git reset HEAD file
  5. 删除   git rm test.txt
  6. 关联远程仓库  git remote add origin git@github.com:michaelliao/learngit.git
  7. 将本地仓库推送  git push -u origin master  我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
  8. 推送其他分支   git push origin dev
  9. git clone git@github.com:michaelliao/gitskills.git
  10. git checkout -b dev  

     git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'
  11. 合并指定分支到当前分支  git merge dev
  12. 删除dev分支   git branch -d dev
  13. 查看分支:git branch

    创建分支:git branch <name>

    切换分支:git checkout <name>

    创建+切换分支:git checkout -b <name>

    合并某分支到当前分支:git merge <name>

    删除分支:git branch -d <name>

  14.  

    分支合并图  git log --graph
  15. 把当前工作现场“储藏”起来  git stash
  16. 查看   git stash list
  17. 恢复   git stash apply  恢复后,stash内容并不删  需要用git stash drop来删除  git stash pop,恢复的同时把stash内容也删了
  18. 你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:

    git stash apply stash@{0}
  19. 强行删除分支 git branch -D feature-vulcan
  20. 查看远程库的信息 git remote -v 或git remote 
  21. 当你的小伙伴从远程库clone时,默认情况下,你的小伙伴只能看到本地的master分支,你的小伙伴要在dev分支上开发,就必须创建远程origindev分支到本地,于是他用这个命令创建本地dev分支:
    $ git checkout -b dev origin/dev
  22. 指定本地dev分支与远程origin/dev分支的链接git branch --set-upstream dev origin/dev
  23. 抓取远程的最新提交  git pull
    • 查看远程库信息,使用git remote -v

    • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

    • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

    • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

    • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

    • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

  24. 打一个新标签  git tag v1.0  默认标签是打在最新提交的commit上
    给提交6224937打标签  git tag v0.9 6224937  
  25. 查看标签  git tag
  26. 查看标签信息  git show v0.9
  27. 指定标签信息  git tag -a <tagname> -m "blablabla..."
  28. 删除  git tag -d v0.1
  29. 推送某个标签到远程     git push origin <tagname>                              一次性推送全部尚未推送到远程的本地标签  git push origin --tags
  30. 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

    git tag -d v0.9
    

    然后,从远程删除。删除命令也是push,但是格式如下:

    $ git push origin :refs/tags/v0.9
  31. 可以用-f强制添加.ignore中的文件到Git    git add -f App.class
  32. 配置别名  配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
    $ git config --global alias.co checkout
    $ git config --global alias.ci commit
    $ git config --global alias.br branch
    $ git config --global alias.unstage 'reset HEAD'  把reset HEAD 设置成unstage

    配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中:

    $ cat .git/config 
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
    [remote "origin"]
        url = git@github.com:michaelliao/learngit.git
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
        remote = origin
        merge = refs/heads/master
    [alias]
        last = log -1
    

    别名就在[alias]后面,要删除别名,直接把对应的行删掉即可。

    而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中:

    $ cat .gitconfig
    [alias]
        co = checkout
        ci = commit
        br = branch
        st = status
    [user]
        name = Your Name
        email = your@email.com
    

    配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置。

 

 

 

 

 

 

 

 

 

 

 

参考  http://www.jianshu.com/p/072587b47515?utm_campaign=haruki&utm_content=note&utm_medium=reader_share

git add .添加当前目录的所有文件到暂存区
git add <dir> 添加指定目录到暂存区,包括子目录
git add <file1> 添加指定文件到暂存区

 

git commit -m <message>提交暂存区到本地仓库,message代表说明信息
git commit <file1> -m <message> 提交暂存区的指定文件到本地仓库
git commit --amend -m <message> 使用一次新的commit,替代上一次提交


 
git branch列出所有本地分支
git branch -r 列出所有远程分支
git branch -a 列出所有本地分支和远程分支
git branch <branch-name> 新建一个分支,但依然停留在当前分支
git checkout -b <branch-name> 新建一个分支,并切换到该分支
git branch --track <branch><remote-branch> 新建一个分支,与指定的远程分支建立追踪关系
git checkout <branch-name> 切换到指定分支,并更新工作区
git branch -d <branch-name> 删除分支
git push origin --delete <branch-name> 删除远程分支


git fetch <remote>merge之前先拉一下远程仓库最新代码
git merge <branch> 合并指定分支到当前分支
 
 
git reset —soft <commit>只改变提交点,暂存区和工作目录的内容都不改变
git reset —mixed <commit> 改变提交点,同时改变暂存区的内容
git reset —hard <commit> 暂存区、工作区的内容都会被修改到与提交点完全一致的状态
git reset --hard HEAD 让工作区回到上次提交时的状态

 

git push <remote><branch>上传本地指定分支到远程仓库
git push <remote> --force 强行推送当前分支到远程仓库,即使有冲突
git push <remote> --all 推送所有分支到远程仓库

   
 
 
 
 

 
git status显示有变更的文件
git log 显示当前分支的版本历史
git diff 显示暂存区和工作区的差异
git diff HEAD 显示工作区与当前分支最新commit之间的差异
git cherry-pick <commit> 选择一个commit,合并进当前分支
 
 
 
 


posted @ 2017-09-02 14:49  ontway  阅读(374)  评论(0编辑  收藏  举报