https://blog.csdn.net/bruce_6/article/details/83615226?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-8.channel_param_right&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-8.channel_param_right
一些配置命令
1.查看配置
git config -l
2.查看不同级别的配置文件
#查看系统config
git config --system --list
3.#查看当前用户(global)配置
git config --global –list
git config --global user.name “dulijun” #名称
git config --global user.email “353862005@qq.com” #邮箱
Git的分区和基本流程
1、四个分区
前三个区域是本地的,第四个区域是远程的
-
工作区(WorkSpace):本地存放项目代码的目录
-
暂存区(Stage/Index):是一个文件,临时存放对文件的更改,保存即将提交到文件列表信息
-
本地仓库(Repository):安全存放数据的位置,包含提交的所有版本的数据;HEAD指向最新放入仓库的版本
-
远程仓库(Remote):托管代码的服务器,比如Gitee、Github等
文件在这四个区域之间的传输命令如下:
2、工作流程
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
由此可见,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
Git项目搭建
创建新项目 1: 在项目目录里面 git init
创建新项目 2:克隆一个项目和它的整个代码历史(版本信息) git clone [url]
文件的四种状态
- Untracked:未跟踪,此文件在工作文件夹中,但并没有加入到git库,不参与版本控制,通过git add 状态变为Staged.
- Unmodify:文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
- Modified:文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
- Staged:暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
#查看指定文件状态
git status [filename]
#查看所有文件状态
git status
#添加所有文件到暂存区
git add .
#提交暂存区中的内容到本地仓库 -m 提交信息
git commit -m “消息内容”
git 在win10下乱码,解决办法:
git config --global core.quotepath false
从A分支切换到B分支,git pull出错:
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm ’
as appropriate to mark resolution, or use ‘git commit -a’.
git warning: inexact rename detection was skipped due to too many files.
Pull is not possible because you have unmerged files
尝试解决办法:
不正确:
解决方法:
1、
丢弃本地提交,强制回到线上最新版本
git fetch --all
git reset --hard origin/你需要下拉的分支(默认master)
git fetch
保存本地提交
git reset --abort
git reset --merge
git commit -am ‘提交信息’
git pull
2
正确:
git reset --hard FETCH_HEAD
,FETCH_HEAD表示上一次成功git pull之后形成的commit点。然后git pull.
注意:
git merge会形成MERGE-HEAD(FETCH-HEAD) 。git push会形成HEAD这样的引用。HEAD代表本地最近成功push后形成的引用。