教程地址

  • 廖老师教程传送门:https://www.liaoxuefeng.com/wiki/896043488029600
  • 入门小白的不二选择

基本概念

  • 工作区:新文件没被add到暂存区,显式红色

  • 暂存区:进仓库前暂时存放区域,未对本地仓库生效。对暂存区文件修改,显蓝色。第一次创建并add到暂存区的文件,由于远程仓库没同步,显绿色。(注:存放在 “.git/index目录” )

  • 本地仓库 :暂存区commit代码放入本地仓库,通过 push 推送到远程仓库。(注:存在“.git”目录。)

  • 远程仓库:在前面的话,仓库里都有些什么东西只有你自己知道,但是一旦把本地仓库推到远程仓库之后,仓库里有什么东西大家就都知道了

初始化仓库

# 本地初始化
> git init 
# 从远程拉取
> git clone https://github.com/xxxx/xxx.git

查看仓库状态

> git status   # 查看当前分支状态

查看历史版本

> git reflog   # 查看版本信息
> git log      # 查看版本详细信息

版本回退

> git reset --hard commit_id

代码提交流程

> git add .  # * 添加全部 也可以指定文件添加
> git commit -m "更新说明"  # 代码提交到缓存区
> git pull    # 拉取当前分支的最新代码
> git push origin master # push到远程的master分支

> #1.提交单个文件
> git add  工程名的下一级开始写路径直到文件名
> #2.执行commit提交
> git commit -m "文字描述"(单引号和双引号都可以)
> #3.方案一:合并远程分支代码(如果在此之前有别人提交了代码,需要先合并代码才能够push)
> git fetch origin 
> (git remote update有的时候可能需要同步一下远程和本地)
> git merge origin/远程分支名  
> #4.方案二:合并远程分支代码
> git pull origin 远程分支名
>##----(PS:方案一和方案二选择一个即可)----##
> #5.执行push推送代码
> git push origin 本地分支名:远程分支名

分支管理

查看分支

> git branch     # 查看本地分支
> git branch -v  # 查看当前分支
> git branch -r  # 查看远程分支
> git branch -a  # 查看所有分支

新增分支

> git branch  # 查看当前的所有分支
> git branch branch_name  # 创建分支名称为branch_name 的分支
> git checkout branch_name # 切换到分支名称为branch_name 的分支
> git checkout -b branch_name # 创建分支branch_name 并切换到该分支
> git push origin 本地分支名称:远程分支名称   # 本地分支推送到远程分支

删除分支

> # 删除本地分支
> -d --delete  # 使用前必须同上游分支merge完成,如果没有上游分支,必须要和HEAD完全merge
> -D --delete --force的缩写 # 可以在不检查merge状态的情况下删除分支
> -f --force # 作用是将当前branch重置到初始点(startpoint)
> # 使用方式 1.先切换到其他分支; 2.执行分支的删除操作
> git branch -D branch_name  # 强制删除分支
> git branch -d branch_name  # 删除已merge的分支

> # 删除远程分支
> 场景1:删除本地上传的分支
> # 本地创建分支
> git branch -b branch_name    
> git push origin branch_name:branch_name # git push origin 本地分支名称:远程分支名称   本地分支推送到远程分支
> # 删除分支
> git checkout master    git branch -D branch_name   # 切换到其他分支后执行强制删除
> git push origin --delete branch_name   # 删除远程分支
> 场景2:删除远程分支
> # 拉取远程分支b并在本地创建分支B   git checkout -b 本地分支 origin/远程分支
> git checkout -b b origin/b   # 远程分支同步到本地
> #  剩余删除步骤同场景1
> git checkout master    git branch -D branch_name   # 切换到其他分支后执行强制删除
> git push origin --delete branch_name   # 删除远程分支

合并分支

  • 合并分支操作
> git merge 分支名
> # 操作流程 已分支和到主分支为例(ps 分支可以任意合并的)
> # 1. 先切换到主分支master
> git checkout master
> # 2. 和并分支hotfix_xx
> git merge hotfix 
  • 合并分支冲突
    冲突产生的原因: 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git 无法替我们决定使用哪一个,必须人为决定新代码内容。
> # 解决分支合并冲突的流程
> # 1. 删除冲突中不要的部分,留下最终需要保留的部分
> # 2. git add .  # 添加文件到暂存区
> # 3. git commit -m ""   # 代码提交到缓存区
> # 4. git pull  # 拉取最新的代码
> # 5. git push origin 本地分支名:远程分支名
  • error: You have not concluded your merge (MERGE_HEAD exists)
# 舍弃本地代码,远端版本覆盖本地版本(慎重)
> git fetch --all
> git reset --hard origin/master
> git fetch
# 保留本地的更改,中止合并->重新合并->重新拉取 好像没有生效
> git merge --abort
> git reset --merge
> git pull
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐