Git速成&常用命令&实用技巧

Git 是一个开源的分布式版本控制系统,学会使用它可以高效地处理大小代码项目。

基本概念

工作流程:
在这里插入图片描述
工作区、暂存区、版本库

工作区:电脑里能看到的目录
暂存区:放在.git/index
版本库:工作区的隐藏目录.git
在这里插入图片描述
master分支代表的目录
index是暂存区
HEAD是一个指向master的“指针标”
objects 标识的区域为 Git 的对象库,实际位于 “.git/objects” 目录下,里面包含了创建的各种对象及内容。
git reset HEAD会使暂存区内容被HEAD指向的master目录内容替换,但工作区不影响
git rm从暂存区删除,但工作区不改变
git checkout . 或者指定文件,用暂存区文件替换工作区,意味这会清楚工作区未添加到暂存区的改动

创建仓库

  • 初始化一个Git仓库,在目录下生成一个.git目录
git init //当前目录初始化Git仓库
git init <tartgetDir> //指定目录下作为Git仓库
  • 从现有Git仓库中拷贝一份项目
git clone <repoURL>
git clone <repoURL> <tartgetDir>  //克隆到指定的目录

例:

git clone git://github.com/schacon/grit.git testLib

基本操作

  • 查看文件处于什么状态
git status
  • 比较暂存区与工作区文件差异
git diff
git diff --cached // 查看已缓存的改动
git diff HEAD //查看已缓存的与未缓存的所有改动:
  • 跟踪一个文件并放入暂存区
 git add 
 git add .  //全部放入暂存区
 git add <filename> //放入一个指定文件到暂存区
  • 提交暂存区到本地仓库
git commit 
git commit -m “describe of change”
  • 查看提交历史
 git log 
  • 检查提交具体内容
git show <commitHashCode>
  • 自己的分支推送到远程服务器
 git push 
 git push origin
  • 更新远端的服务器本地代码,用于从远程获取代码并合并本地的版本。
    (git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写)
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull 
git pull origin develop //远端develop分支与当前分支合并
git pull origin develop:<branchB>   //origin主机的develop与本地的branchB分支合并

分支管理

  • 列出本地可用分支
git branch
git branch -a //显示本地与远程 
git branch -r //远程
  • 从现有分支创建新分支
git branch <branchName>
git checkout <branchName> //切换到一个分支
git checkout -b <branchName> //创建新分支并切换
  • 编辑分支
git branch -d(D) <branchName> //删除分支,删除前要先切换到其他分支
git branch -m <oldName> <newName> //修改分支名
git push origin :<branchName> //删除远程的这个分支

常用手段

  • 当更新代码时候,本地更改与上游没冲突时,简单的git pull就行了。但是,有些情况下,本地与上游相冲突,git pull会拒绝覆盖更改。 在这种情况下,可以将更改隐藏起来,执行git pull,然后解压 像栈一样
git stash
git stash & git pull & git stash pop      
git stash clear
  • 覆盖代码
    git reset --hard origin/master

  • 把某一个commit的修改 同步到当前分支。如果提示bad version,说明那个commitID本地还不知道,使用git fetch --prune 或者 git pull 来获取新分支

git cherry-pick commitId 
  • 撤销修改
  1. 撤销修改工作区
git checkout -- fileName 

一种是 文件修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态。
一种是 文件已经添加到暂存区后又作了修改,撤销修改就是回到暂存区中该文件的状态。

  1. 暂存区的修改放回工作区
    git reset HEAD fileName //撤销掉unstage,重新放回工作区,再按1步骤撤销
    git reset --hard HEAD^ //已经提交了不合适的修改到版本库时,想要读档上一个commit版本
    git reset --hard commit_id //回到指定的commit版本

git命令缩写

使用缩写git命令可以大大提升效率,比如最常用gst 不需要打全拼 git status
.gitconfig中修改alias自定义
使用命令设置缩写

git config --global alias.br branch  //branch的简写就是br

安装oh-my-zsh自带简写摘选部分如下

alias g='git'
alias ga='git add'
alias gco='git checkout'
alias gcb='git checkout -b'
alias gcd='git checkout develop'
alias gcmsg='git commit -m'
alias gcp='git cherry-pick'
alias gd='git diff'
alias gdca='git diff --cached'
alias gf='git fetch'
alias gl='git pull'
alias gm='git merge'
alias gp='git push'
alias gpf!='git push --force'
alias gr='git remote'
alias gra='git remote add'
alias grev='git revert'
alias grh='git reset'
alias grhh='git reset --hard'
alias gsh='git show'
alias gst='git status'
alias gstc='git stash clear'
alias gstd='git stash drop'
alias gstp='git stash pop'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值