# 1、git 工作流程

git工作流程

命令:

  1. clone:克隆,从远程仓库中克隆代码到本地仓库
  2. checkout:检出,从本地仓库检出一个仓库分支然后进行修订
  3. add:添加,在提交前先将代码提交到暂存区
  4. commit:提交,提交到本地仓库,本地仓库中保存修改的各个历史版本
  5. fetch:抓取,从远程库抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
  6. pull:拉取,从远程库拉到本地库,自动进行合并(merge),然后放到工作区,相当于 fetch+merge
  7. push:推送,修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库

# 2、git 常用命令

  • ls/ll 查看当前目录
  • cat 查看文件内容
  • touch 创建文件
  • vi vi 编辑器

# 3、基础操作指令

git 工作目录下对于文件的修改 (增加、删除、更新) 会存在几个状态,这些修改的状态会随着执行 git 命令而改变。

目录状态

# 3-1、* 查看修改的状态(status)

  • 作用:查看的修改的状态(暂存区、工作区)
  • 命令: git status

# 3-2、* 添加工作区到暂存区(add)

  • 作用:添加工作区一个或多个文件的修改到暂存区
  • 命令: git add 单个文件名 | 通配符
    • 将所有修改加入暂存区: git add .

# 3-3、* 提交暂存区到本地仓库(commit)

  • 作用:提交暂存区内容到本地仓库的当前分支
  • 命令: git commit -m '注释内容'

# 3-4、* 查看提交日志(log)

在.bashrc 文件中输入:(作用是配置别名)

#用于输出git提交日志 
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
  • 作用:查看提交记录
  • 命令:配置过别名后直接 git-log
  • log 后可跟参数:
    • –all 显示所有分支
    • –pretty=online 将提交信息显示为一行
    • –abbrev-commit 使输出的 commit 更简短
    • –graph 以图的形式显示

# 3-5、版本回退

  • 作用:版本切换
  • 命令: git reset --hard commitID
    • commitID 可以使用 git-loggit log 查看
  • 查看已经删除的记录: git reflog

# 4、分支

  1. 查看本地分支: git branch
  2. 创建本地分支: git branch 分支名
  3. ***** 切换分支: git checkout 分支名
  4. 创建并切换分支: git checkout -b 分支名
  5. ***** 合并分支(一个分支上的提交可以合并到另一个分支): git merge 分支名称
  6. 删除分支(不能删除当前分支,只能删除其他分支)
    1. git branch -d b1 :删除分支时,需要做各种检查
    2. git branch -D b1 :不做任何检查,强制删除分支

# 5、操作远程仓库

# 5-1、添加远程仓库

  • 命令: git remote add 远端名称 仓库路径
    • 远端名称:默认是 origin,取决于远端服务器设置
    • 仓库路径:从远端服务器获取 URL

# 5-2、查看远程仓库

  • 命令: git remote

# 5-3、推送到远程仓库

  • 命令: git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
    • 如果远程分支名和本地分支名称相同,则可以只写本地分支
      • git push origin master
    • -f 表示强制覆盖
    • --set-upstream 推送到远端的同时并且建立起和远端分支的关联关系
      • git push --set-upstream origin master
    • 如果当前分支已经和远端分支关联,则可以省略分支名和远端名
      • git push 将 master 分支推送到已关联的远端分支

# 5-4、本地分支与远程分支的关联关系

  • 命令: git branch -vv

# 5-5、从远端仓库克隆

如果已经有一个远端仓库,可以直接 clone 到本地。

  • 命令: git clone 仓库路径 [本地目录]
    • 本地目录可以省略,会自动生成一个目录

# 5-6、从远端仓库中抓取和拉取

远程分支和本地的分支一样,都可以进行 merge 操作,只是需要先把远端仓库里的更新都下载到本

地,再进行操作

  • 抓取 命令: git fetch 远端名 分支名
    • 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
    • 如果不指定远端名和分支名,则抓取所有分支
  • 拉取 命令: git pull 远端名 分支名
    • 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于 fetch+merge
    • 如果不指定远端名和分支名,则抓取所有并更新当前分支

# 附:几条铁令

  1. 切换分支前先提交本地的修改
  2. 代码及时提交,提交过了就不会丢

# 附:idea 集成 GitBash 作为 Terminal

file --> settings --> Tools --> Terminal 修改:

设置Terminal