• git 常用命令


     Git 常用命令速查

     从服务器上将代码给拉下来

    Git 几个专用名词的译名如下。

    Workspace:工作区
    Index / Stage:暂存区
    Repository:仓库区(或本地仓库)
    Remote:远程仓库

    远程仓库相关命令

     1 检出仓库:$ git clone git://github.com/jquery/jquery.git
     2 
     3 查看远程仓库:$ git remote -v
     4 
     5 添加远程仓库:$ git remote add [name] [url]
     6 
     7 删除远程仓库:$ git remote rm [name]
     8 
     9 修改远程仓库:$ git remote set-url --push [name] [newUrl]
    10 
    11 拉取远程仓库:$ git pull [remoteName] [localBranchName]
    12 
    13 推送远程仓库:$ git push [remoteName] [localBranchName]

    注:  git commit -m "用户权限管理" --no-verify

    如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

    git push origin test:master // 提交 本地test 分支作为远程的master分支
    git push origin test:test // 提交 本地test 分支作为远程的test分支

    - 分支(branch)操作相关命令

    1 * git branch --set-upstream dev origin/next 
    2 * // 手动建立追踪关系。dev分支追踪origin/next分支
    3 * git branch 列出所有本地分支
    4 * git branch -r 列出所有远程分支
    5 * git branch -a 列出所有本地分支和远程分支
    6 * git branch [branch-name] 新建一个分支,但依然停留在当前分支
    7 * git checkout -b [branch-name] 新建一个分支,并切换到该分支
    8 * git branch --track [branch][remote-branch]

    新建一个分支,与指定的远程分支建立追踪关系

    1 * git checkout [branch-name] 切换到指定分支,并更新工作区
    2 * git branch -d [branch-name] 删除分支-d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。
    3 * git push origin --delete [branch-name] 删除远程分支

    版本(tag)操作相关命令查看版本:$ git tag

     1 创建版本:$ git tag [name]
     2 
     3 删除版本:$ git tag -d [name]
     4 
     5 查看远程版本:$ git tag -r
     6 
     7 创建远程版本(本地版本push到远程):$ git push origin [name]
     8 
     9 删除远程版本:$ git push origin :refs/tags/[name]
    10 
    11 合并远程仓库的tag到本地:$ git pull origin --tags
    12 
    13 上传本地tag到远程仓库:$ git push origin --tags
    14 
    15 创建带注释的tag:$ git tag -a [name] -m 'yourMessage'

    合并分支

    比如,如果要将开发中的分支(develop),合并到稳定分支(master)

    1 首先切换的master分支:git checkout master。
    2 然后执行合并操作:git merge develop。
    3 如果有冲突,会提示你,调用git status查看冲突文件。
    4 解决冲突,然后调用git add .
    5 所有冲突解决后,git commit 提交更改。

    拉取分支

    获取最新版本有两种 拉取和 获取 pull 和 fetch

    1 git pull 相当于git fetch 和 git merge
    2 
    3 git pull 从远程拉取最新版本到本地自动合并 merge 
    4 git pull origin master
    5 git fetch 从远程获取最新版本到本地不会自动合并 merge 
    6 git fetch origin master
    7 git log -p master..origin/master
    8 git merge origin/master

    以上命令的含义:
    首先从远程的origin的master主分支下载最新的版本到origin/master分支上
    然后比较本地的master分支和origin/master分支的差别
    最后进行合并
    实际使用中使用git fetch 更安全在merge之前可以看清楚 更新情况 再决定是否合并

    当前的分支20171208,获取20171214分支最新代码,然后再推送到远程远程20171214

    1 git fetch
    2 git checkout 20171214
    3 git merge 20171208
    4 git push

     推送分支

    (1)本地分支与远程分支可以不是追踪关系
    * 如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的test分支,或者作为另外一个名叫test的分支,如下:

    * 本地先开好分支然后推送到远程

    $ git checkout -b test //创建并切换到分支test 
    $ git push origin test:test // 推送本地的test(冒号前面的)分支到

    远程origin的test (冒号后面的)分支(没有会自动创建)
    (2)本地分支与远程分支是追踪关系
    * 如果想把本地的某个分支dev提交到远程仓库,并作为远程仓库的dev分支,或者作为另外一个名叫dev的分支,如下:

     * 本地先开好分支然后推送到远程
      $  git checkout -b dev   //创建并切换到分支dev 
      或者当前的分支就是dev
      $  git push origin dev
      eg.2
      git push origin payght  // 将本地dev 分支推送到远程 payght 分支

    分支操作

     1 # 列出所有本地分支
     2 $ git branch
     3 
     4 # 列出所有远程分支
     5 $ git branch -r
     6 
     7 # 列出所有本地分支和远程分支
     8 $ git branch -a
     9 
    10 # 新建一个分支,但依然停留在当前分支
    11 $ git branch [branch-name]
    12 
    13 # 新建一个分支,并切换到该分支
    14 $ git checkout -b [branch]
    15 
    16 # 新建一个分支,指向指定commit
    17 $ git branch [branch] [commit]
    18 
    19 # 新建一个分支,与指定的远程分支建立追踪关系
    20 $ git branch --track [branch] [remote-branch]
    21 
    22 # 切换到指定分支,并更新工作区
    23 $ git checkout [branch-name]
    24 
    25 # 切换到上一个分支
    26 $ git checkout -
    27 
    28 # 建立追踪关系,在现有分支与指定的远程分支之间
    29 $ git branch --set-upstream [branch] [remote-branch]
    30 
    31 # 合并指定分支到当前分支
    32 $ git merge [branch]
    33 
    34 # 选择一个commit,合并进当前分支
    35 $ git cherry-pick [commit]
    36 
    37 # 删除分支
    38 $ git branch -d [branch-name]
    39 
    40 # 删除远程分支
    41 $ git push origin --delete [branch-name]
    42 $ git branch -dr [remote/branch]

    查看信息

     1 # 显示有变更的文件
     2 $ git status
     3 
     4 # 显示当前分支的版本历史
     5 $ git log
     6 
     7 # 显示commit历史,以及每次commit发生变更的文件
     8 $ git log --stat
     9 
    10 # 搜索提交历史,根据关键词
    11 $ git log -S [keyword]
    12 
    13 # 显示某个commit之后的所有变动,每个commit占据一行
    14 $ git log [tag] HEAD --pretty=format:%s
    15 
    16 # 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件
    17 $ git log [tag] HEAD --grep feature
    18 
    19 # 显示某个文件的版本历史,包括文件改名
    20 $ git log --follow [file]
    21 $ git whatchanged [file]
    22 
    23 # 显示指定文件相关的每一次diff
    24 $ git log -p [file]
    25 
    26 # 显示过去5次提交
    27 $ git log -5 --pretty --oneline
    28 
    29 # 显示所有提交过的用户,按提交次数排序
    30 $ git shortlog -sn
    31 
    32 # 显示指定文件是什么人在什么时间修改过
    33 $ git blame [file]
    34 
    35 # 显示暂存区和工作区的代码差异
    36 $ git diff
    37 
    38 # 显示暂存区和上一个commit的差异
    39 $ git diff --cached [file]
    40 
    41 # 显示工作区与当前分支最新commit之间的差异
    42 $ git diff HEAD
    43 
    44 # 显示两次提交之间的差异
    45 $ git diff [first-branch]...[second-branch]
    46 
    47 # 显示今天你写了多少行代码
    48 $ git diff --shortstat "@{0 day ago}"
    49 
    50 # 显示某次提交的元数据和内容变化
    51 $ git show [commit]
    52 
    53 # 显示某次提交发生变化的文件
    54 $ git show --name-only [commit]
    55 
    56 # 显示某次提交时,某个文件的内容
    57 $ git show [commit]:[filename]
    58 
    59 # 显示当前分支的最近几次提交
    60 $ git reflog
    61 
    62 # 从本地master拉取代码更新当前分支:branch 一般为master
    63 $ git rebase [branch]

    撤销

     1 # 恢复暂存区的指定文件到工作区
     2 $ git checkout [file]
     3 
     4 # 恢复某个commit的指定文件到暂存区和工作区
     5 $ git checkout [commit] [file]
     6 
     7 # 恢复暂存区的所有文件到工作区
     8 $ git checkout .
     9 
    10 # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
    11 $ git reset [file]
    12 
    13 # 重置暂存区与工作区,与上一次commit保持一致
    14 $ git reset --hard
    15 
    16 # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
    17 $ git reset [commit]
    18 
    19 # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
    20 $ git reset --hard [commit]
    21 
    22 # 重置当前HEAD为指定commit,但保持暂存区和工作区不变
    23 $ git reset --keep [commit]
    24 
    25 # 新建一个commit,用来撤销指定commit
    26 # 后者的所有变化都将被前者抵消,并且应用到当前分支
    27 $ git revert [commit]
    28 
    29 # 暂时将未提交的变化移除,稍后再移入
    30 $ git stash
    31 $ git stash pop
  • 相关阅读:
    [BZOJ2434][Noi2011]阿狸的打字机
    [BZOJ2303][Apio2011]方格染色
    [BZOJ1912][Apio2010]patrol 巡逻
    [BZOJ1179][Apio2009]Atm
    [BZOJ1178][Apio2009]CONVENTION会议中心
    Lock-less buffer management scheme for telecommunication network applications
    vue-router@2.x 只适用于 Vue 2.x 版本。
    jQuery 捕获
    jQuery Chaining
    jQuery Callback 方法
  • 原文地址:https://www.cnblogs.com/gaoht/p/9087070.html
Copyright © 2020-2023  润新知