zoukankan      html  css  js  c++  java
  • 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,合并进当前分支
     
     
     
     


  • 相关阅读:
    rest_framework规范
    跨域问题
    网站部署(二)
    服务器更改密码后,git不能连接问题
    网站部署(一)
    Ajax
    AJAX基本使用
    Java之JNDI详解
    IntelliJ IDEA(2018.3.3) 的介绍、安装、破解、配置与使用
    数据库修改密码风险高,如何保证业务持续,这几种密码双活方案可以参考
  • 原文地址:https://www.cnblogs.com/ontway/p/7466713.html
Copyright © 2011-2022 走看看