*git命令 git-for-windows git工作流 git基本命令 git分支 git 更新与合并 git标签 git版本操作 git配置 参考 

下载: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命令
git-for-windows
git工作流
git基本命令
git分支
git 更新与合并
git标签
git版本操作
git配置
参考 

*git命令
git-for-windows
git工作流
git基本命令
git分支
git 更新与合并
git标签
git版本操作
git配置
参考 

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.装饰、装修