zoukankan      html  css  js  c++  java
  • *git命令

    git-for-windows

    下载:https://git-for-windows.github.io/

    git-bash路径表示

    c:  c

    d:git  dgit

    git工作流

    本地仓库由git维护的三棵“树”组成 

    1. 工作区:实际工作文件目录
    2. 暂存区(stage / index):暂存工作目录文件的改动,暂存在.git/index目录下
    3. 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库,其中HEAD指向你最后一次提交版本

    git基本命令

    • 创建mygit新仓库

      cd dgit  

      mkdir mygit

      git init 

    • 克隆现有仓库

      git clone /d/git/mygit

      git clone username@hostname:/repository-path

    •  添加变动

      git add filename 或 git add --all

      git add 将工作目录变更添加到INDEX暂存区,可以添加指定文件到暂存区,或添加所有变动(增、删、改)到暂存区。  

    • 提交变动到本地仓库

      git commit -m "这是本次提交内容的描述"

      git commit 将暂存区变动提交到本地仓库HEAD,但还未PUSH到你的远程仓库

      git commit --amend -m "message"  重复上次提交(替换最后一次提交,包括-m 信息)

      git commit -a -m "message" 提交工作区自上次commit之后的变化,直接到仓库区(不能提交新增加的文件)

    • 推送变动到远程仓库

      git push [remote] [branch] [--force] [--all] 

      如:git push origin master

      --force 强行推送,哪怕有冲突

      --all 推送全部分支

      推送的前提是你已经连接到了远程仓库。

    • 将本地仓库连接到远程仓库 

      git remote add origin git://github.com/paulboone/ticgit.git

    git分支

    分支可以使你从开发主线(master)上分离出来,不影响主线的同时,继续工作,并可以将工作成果合并到主线上。

    • 新建分支 

      git branch mybranch

    • 切换分支 

      git checkout mybranch

      git checkout -  切换到上一分支

    •  新建分支并切换分支

      git checkout -b mybranch  //创建mybranch分支并切换过去

    • 查看分支 

      git branch [-r] [-a]

      -r 列出远程分支

      -a 列出远程和本地所有分支 

    • 删除分支

      git branch -d mybranch

    • 推送分支到远程仓库

      git push origin mybranch  //未推送前,该分支不为他人所见 

    • 设置分支跟踪

      git branch --set-upstream-to=origin/master master

    git 更新与合并

    • 更新本地仓库至最新版本(获取、合并远程的变动)

      git pull  

    • 更新本地仓库至最新版本(获取不合并)

      git fetch

      git pull & git fetch区别: git pull = git fetch + git merge   待理解???

    • 合并其它分支到你当前分支 

      git merge feature_x

      上面两种情况git都会自动尝试合并改动,如有冲突,需要修改冲突文件,手动合并冲突。

      冲突文件修改后,使用 git add <filename>将其标记为合并成功。 为什么,有疑问???

    • 差异比较

      合并分支之前,可以先比较差异。

      git diff <source_branch> <target_branch>

    git标签

    当你工作进入一个里程碑阶段,并希望永远记住此刻的快照,可以为其添加标签。

    • 为提交添加标签

      git tag v1.0 [commit_id] [-m "标签说明"]

      为指定commit_id提交添加标签,省略则为最新提交添加标签。

      使用-m参数,git会为标签添加注解,就像提交时的注解一样。

    • 查看标签

      git tag [-n]  

      -n 参数显示标签,同时显示-m参数添加的注解说明。

    • 查看提交历史

      git log [--decorate]

      --decorate 参数可以显示提交历史,并带有标签信息

    • 显示当前分支最近几次提交

      git reflog

    • 查看某次Commit变动的内容

      git show [commit_id]  

      忽略commit_id,则显示最后一次提交变动的内容。

    git版本操作

    •  替换本地改动

      git checkout [-- filename]  

      用暂存区中filename文件来覆盖工作区中的filename文件。 (--后面有空格)

      git checkout .

      恢复暂存区所有文件到工作区(不包括新增文件)
      这个命令是以最新的存储时间节点(add和commit)为参照,覆盖工作区对应文件file;这个命令改变的是工作区

    •  查看当前分支版本状态

      git status

    • 重置工作区与暂存区,与上一次提交版本一致

      git reset --head

    • 重置commit指针

      git reset 重置当前分支指针(保留工作区)

      git reset --hard 重置当前分支指针(不保留工作区)

    • 隐藏/显示变动(未提交的变动暂时隐藏起来,稍后可以重置显示出来)

      $ git stash  隐藏变动
      $ git stash pop  重新显示变动

    git配置

    • 显示配置列表

      git config -l 

    参考 

    1. git使用规范流程,阮一峰
    2. git常用命令清单,阮一峰
    3. git远程操作详解,阮一峰 
    4. git分支管理策略,阮一峰
    5. Git 工作流程,阮一峰
    6. git - 简明指南 
    7. git概念、原理、使用
    8. 探索.Git目录,让你真正了解Git

        

      branch 分支

      fetch 获取

      merge 合并  

      conflicts 冲突

      decorate v.装饰、装修

  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/ybtools/p/6650265.html
Copyright © 2011-2022 走看看