网站平台代理,比wordpress还好,短视频动画制作,南宁网站搭建核心概念介绍
工作区是你当前正在进行编辑和修改的文件夹#xff0c;可见的。
暂存区位于.git/index(git add放入)。
代码库(工作树)位于.git(git commit将暂存区中的更改作为一个提交保存到代码库中,并清空暂存区) 避免输入用户 密码#xff1a;
方式一#xff1a;
ht…核心概念介绍
工作区是你当前正在进行编辑和修改的文件夹可见的。
暂存区位于.git/index(git add放入)。
代码库(工作树)位于.git(git commit将暂存区中的更改作为一个提交保存到代码库中,并清空暂存区) 避免输入用户 密码
方式一
http协议
git clone https://usernamegithub.com/username/repository.git
ssh协议
配置 ssh密钥免密即可
方式二
gitcredentials - 为 Git 提供用户名和密码
cache 将内存中的凭据缓存一段时间。 store 无限期地将凭证存储在磁盘上。 echo http(s)://{你的用户名}:{你的密码}你的服务器地址 ~/.git-credentials
git config --global credential.helper store
然后就不需要输入用户名 密码了 另外git要求您有一个配置设置user.name以便user.email提交/推送没有这些配置设置git就无法将作者信息添加到提交中。 git config --global user.name $WSY_SERVICE_NAME git config --global user.email $WSY_SERVICE_NAME163.com //git config user.email 查看设置的信息 diff 比对
git diff 显示本地开发工作中已经修改但未提交至暂存区的文件和已经提交至暂存区文件的修改
git diff HEAD 显示的是已提交到工作树中文件和未提交到工作树中文件的所有修改。查看已缓存的与未缓存的所有改动。
git diff --cached 上一次最后一次提交到工作树中文件也就是head与暂存区内文件的改动。查看已缓存的改动。
git diff --name-only --diff-filterU 缩写-U指定只查看产生冲突的文件
git diff source target 比较俩个分支的差异 合并冲突 git pull origin main git fetch origin main git merge origin/main
执行 git pull 命令时如果当前分支有未提交的更改Git会提示您先commit提交更改
需要先commit再merge合并冲突原因如下
直接merge 存在冲突会报错, 不会将冲突内容写入文件中(git status/git diff看不到冲突信息)如下所示
Updating ae32fe4..adb8b80
error: Your local changes to the following files would be overwritten by merge: aaa.txt
Please commit your changes or stash them before you merge.
Aborting 正确做法
先commit然后再merge存在冲突不会报错会将冲突内容写入文件中(git status/git diff可看到冲突信息)如下所示
rootsaas-node002:/# git merge
Auto-merging aaa.txt
CONFLICT (add/add): Merge conflict in aaa.txt
Automatic merge failed; fix conflicts and then commit the result. git diff --diff-filterU --name-only // 缩写-U指定只查看产生冲突的文件
git diff origin/main main -- aa.txt // 查看fetch下来的远端main与本端main的aa.txt差异 git status 显示当前代码库状态信息包括未提交文件未解决冲突文件。
合并冲突见下面冲突解决部分。 额外 强制用远程覆盖本地不处理冲突
git fetch
git reset --hard origin/main git pull(git fetch git merge) 冲突解决
git add .
git commit -m xxx //必须先commit再merge否则不会生成如下冲突文件
git fetch git merge
git merge --no-ff test // --no-ff 避免test分支的提交历史混入到main中搅乱main的提交历史
1.非二进制文件在发生冲突的文件中冲突区域有明显的标记 yours 你当前工作区的代码 合并过来的代码 their
1-1.可以vim文件手动调整解决冲突。
git add filename #将调整后的文件标记为已解决状态
git commit git merge # 完成合并操作
1-2.或者基于checkout命令选择保留哪个版本的文件
git checkout --theirs conflicted_file.txt # 保留远端的
git checkout --ours conflicted_file.txt # 保留本地的
git add filename #将调整后的文件标记为已解决状态
git commit git merge # 完成合并操作 2.二进制文件Git不会尝试合并文件本身。本地文件保持不变。为了解决冲突可使用checkout命令选择保留哪个版本的文件。
使用 git status 命令检查有冲突的文件列表。
git cat-file -s origin/main:action.png //查看fetch下来的远端的文件大小
git cat-file -s main:action.png //查看本地文件大小
git cat-file -p main:action.png //cat-file查看本地文件内容。(二进制文件推荐用cat-file)
git show main:aaa.txt //show查看本地文件内容 会根据对象的类型进行一些处理和解释。对于文本文件它会尝试以可读的文本形式显示文件内容对于二进制文件它默认会以十六进制字符的形式显示内容
git checkout --theirs conflicted_file.txt # 保留远端的
git checkout --ours conflicted_file.txt # 保留本地的
git add filename # 将已解决的文件标记为已解决状态
git commit git merge