git常用操作
克隆代码> git clone https://github.com/xxxx/xxx.git查看状态> git status# 查看当前分支状态更新代码> git add *# * 添加全部 也可以指定文件添加> git commit -m "更新说明"# 代码提交到缓存区> git pull# 拉取当前分支的最新代码> git push origin mas
·
教程地址
- 廖老师教程传送门: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
更多推荐
已为社区贡献3条内容
所有评论(0)