本页自动汇总「Git」分类下的全部笔记(含子分类),随笔记增删实时更新。

生成的.git文件夹中就那个config文件比较重要一点,里面配置了远程仓库信息,其他的没啥用,几乎都是二进制文件

一、绑定远程仓库

1.1 安装Git(Windows版安装)

**链接:**​https://pan.baidu.com/s/1n5gAh5QqVwg8f3H5b3ydNA?pwd=so14
提取码:so14
–来自百度网盘超级会员V5的分享
改一下安装路径,然后不断下一步即可

1.2 随便在一个文件夹里面,鼠标右键,选择"Git Bash Here",打开Git命令窗口

git config --global user.name "SIE-QIUQINGSHENG"   #Keysqiu应改为你自己的名字
git config --global user.email "2586597832@qq.com"   #2586597832@qq.com应改为你自己的邮箱

输入以上指令后,会在​C:\Users\Administrator​目录下生成​ .gitconfig​**配置文件(​此文件不能删除**​ )

查看.gitconfig配置文件里的内容

1.3 生成ssh密钥

ssh-keygen -t rsa -C "2586597832@qq.com"    #2586597832@qq.com应改为你自己的邮箱

进入C:\Users\Administrator.ssh目录下,查看生成的SSH密钥(Linux在 /root/.ssh/ 里面,命令: cat /root/.ssh/id_rsa.pub​ )

****然后拿公钥文件里面的内容去绑定就行了(**​注意是全部复制,gitee、github都是复制这个文件里面的内容**)

一、git的基本命令

# 初始化本地仓库
git init
# 添加文件(文件夹)到暂存区
git add 文件(文件夹)
# 查看文件当前状态
git status
# 提交暂存区文件中指定的文件到本地仓库
git commit 文件(文件夹) -m "提交说明"
# 提交暂存区中全部的文件到本地仓库
 或(git commit  -m "提交说明")
# 查看仓库文件列表
git ls-files
# 检出git本地库文件到工作区
git checkout -- 文件名
# 删除git版本库文件
git rm 文件名
*** 批量处理文件 ***
# 添加所有文件
git add .
# 提交暂存区中全部的文件到本地仓库(/** all是给这次提交的备注 **/)
git commit -m 'all'
# 提交到远程分支
git push -u origin [远程分支名称]
*** 文件回溯 ***
# 文件差异性比较
git diff HEAD-- 文件名
# 简化提交日志输出(提交日志hash值  HEAD指针指向说明) 
git log --pretty=oneline
# 执行回退/回到操作(向前回退|回到未来)
git reset --hard 版本hash值(5-8个字符)
# 查看当前用户最近操作日志
(后悔药)git reflog
*** 分支操作 ***
# 删除已合并的本地分支(如果分支上有未合并的提交,Git会拒绝删除以保护尚未整合的工作)
git branch -d <branch_name>
# 强制删除本地分支(如果您确定要删除一个分支,即使它包含尚未合并到其他分支的提交)
git branch -D <branch_name>
# 删除远程分支
git remote rm origin
# 获取远程指定分支
git fetch origin <branch_name>
*** 远程仓库操作 ***
# 查看当前远程仓库
git remote -v
# 删除远程仓库
git remote rm origin
# 添加远程仓库
git remote add origin [远程仓库URL]

二、本地仓库和远程仓库之间传递数据

①:先在远程仓库中新建一个仓库(​新建仓库啥都不要选,就选那个公开或者私有就ok​ )
②:找到仓库生成的最后两行代码,在Git Bash中进行操作即可(​
也就是已有仓库那个选项卡
****​ )

三、下载远程仓库

# 下载远程仓库
git clone (ssh的网址)

一个模块就是一个master(一般为项目的根目录),如果想要对某一模块进行bug的修复或者功能的更新,就可以在这个master上新建一个或多个分支,之后就可以进行合并或者组合操作。
可以想作为大鱼吃小鱼,小鱼吃虾米。

四、使用git新建分支并上传

查看一下分支结构

git branch

如果没有你自己的分支,新建分支

git checkout -b 分支名称

已有分支,切换到当前分支

git checkout 分支名称

将要上传的文件提交

git add .

提交文件

git commit -m '提交的描述'

push到远程仓库

git push origin 你的分支名称

五、合并分支

第一种情况:目标:将dev分支合并到master分支(这里的dev分支只是举个例子)

1.1、首先切换到master分支上

git checkout master

1.2、如果是​多人开发​的话 需要先把远程master上的代码pull下来(很重要!!!不然可能导致一会合并完之后,准备推送到远程时,报冲突问题,很重要!!!)

# 不管是个人开发还是团队开发,为了保险期间还是先pull  血泪教训
git pull origin master

1.3、然后我们把dev分支的代码合并到master上

# 如果有冲突,手动解决冲突就行。
git merge dev

1.4、然后查看状态及执行提交命令

git status
On branch master Your branch is ahead of 'origin/master' by 12 commits.   (use "git push" to publish your >local commits) nothing to
commit, working tree clean
# 上面的意思就是你有12个commit,需要push到远程master上 
>> 最后执行下面提交命令 
git push origin master 

第二种情况: 合并某个分支上的单个commit(cherry-pick命令)

比如 feature 分支上的commit 82ecb31非常重要,它含有一个bug的修改,或其他人想访问的内容。
无论什么原因,你现在只需要将82ecb31合并到master,而不合并feature上的其他commits;

所以我们用git cherry-pick命令来做:

git checkout master
git cherry-pick 82ecb31

这样就好啦。 现在82ecb31就被合并到master分支,并在master中添加了commit(作为一个新的commit)。
cherry-pick和merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。
这里git cherry-pick每次合并过来会显示文件冲突(其实并没有冲突代码部分,只需手动解决即可)。

上传本地文件到gitee远程仓库后,发现如下情况:

文件夹显示为灰色并且无法访问,不能点击。瞬间就慌了,不着急往下看。

分析原因

主要原因:无法点击的灰色文件夹中含有 .git 文件夹

意思就是,在本地初始化的仓库(使用 git init 初始化的文件夹) 中的某一个文件夹里含有 .git 文件

上面截图,就是因为 02_vue_脚手架练习 文件夹中,里面含有 .git文件,如下图:含有.git文件

解决方法

删除缓存: git rm -r --cached “灰色文件夹的名称” ---------- # 操作后git上的灰色文件夹会被移除

根据上面的截图来看:
首先在对应文件夹下,打开终端,
运行: git rm -r --cached "02_vue_脚手架练习"
# ===== 重要 ===== #
然后在本地找到灰色文件夹中原本的.git文件手动删掉,注意显示隐藏文件去找,看上面的截图,
再然后重新 git add , commit , push 提交代码

最后成功提交文件夹,可以正常打开,如下图: