git入门总结

  1. Remote:远程主仓库
  2. Repository:本地仓库
  3. Index:Git追踪树,暂存区
  4. workspace:本地工做区

通常代码提交流程为:

  • 工做区
  • git status 查看状态
  • git add . 将全部修改加入暂存区
  • git commit -m "提交描述" 将代码提交到本地仓库
  • git push 将本地仓库代码更新到远程仓库

git add 进阶

  • 场景1:工做区

当改动了工做区的某个文件时,想恢复修改前,用命令 git checkout --fliegit

  • 场景2:暂存区

当不但改动了工做区的某个文件时,想恢复修改前,还 git add 添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git reset HEAD <file>,就回到了场景1,第二步按场景1操做。fetch

git commit 进阶

  • 场景1:更改commit 信息

git commit --amend -m “新提交消息”优化

  • 场景2:漏提交
  1. git add <file>   git commit -m“提交消息” 此时,git 上会出现两次 commit
  2. git add <file>   git commit --amend --no-edit --no-edit 表示提交消息不会更改,在 git 上仅为一次提交
  • 场景3:提交了错误文件

git reset 删除指定的 commit
--mixed 默认选项,会把暂存区里的东西重置到指定提交状态,而且指针指向这个提交。spa

修改版本库,保留暂存区,保留工做区
git reset --soft HEAD~1
将版本库软回退1个版本,软回退表示将本地版本库的头指针所有重置到指定版本,且将此次提交以后的全部变动都移动到暂存区。指针

修改版本库,修改暂存区,修改工做区
git reset --hard HEAD~1
将版本库回退1个版本,不单单是将本地版本库的头指针所有重置到指定版本,也会重置暂存区,而且会将工做区代码也回退到这个版本code

git版本回退,回退到特定的commit_id版本,能够经过git log查看提交历史,以便肯定要回退到哪一个版本(commit 以后的即为ID)
git reset --hard commit_idcdn


git revert
撤销某次操做,这次操做以前和以后的commit和history都会保留,而且把此次撤销做为一次最新的提交。blog

// 撤销前一次 commit
git revert HEAD
// 撤销前前一次 commit
git revert HEAD^
// 撤销指定的版本,撤销也会做为一次提交进行保存。
git revert commit-id
ip

git revert是提交一个新的版本,将须要revert的版本的内容再反向修改回去, 版本会递增,不影响以前提交的内容rem

分支branch

  • 查看,建立项目分支
    git branch
    git checkout -b [name_new_branch]

  • 删除分支
    git branch -d [name_branch]

  • 切换分支
    git checkout [branch-name]

  • 分区合并
    git merge [your_branch]
    注意:若是你合并master ,首先须要切换到master 分支下进行合并。

  • 分区对比
    git diff [branch]..[branch]

  • 重命名branch
    git branch -m [branch] [new_name_branch]

远程 remote

  • 添加远程地址
    git remote add origin [git_address]

  • 拉取远程主机某分支的更新,再与本地的指定分支合并(至关与fetch加上了合并分支功能的操做)
    git pull

  • 分支推送到远程的版本
    git push origin master

优化操做

拉取代码 pull --rebase

tip:rebasegit 中,算得上是『危险行为』,

使用 git pull --rebase比直接 pull 容易致使冲突的产生,若是预期冲突比较多的话,建议仍是直接 pull。

注意: git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase

相关文章
相关标签/搜索