tx git AND composer

《记录一次git 操作场景–再第一次提交push 代码基础上第二次提交 push。其中第二次代码push 只是第一次push 的一部分。最终效果远程分支上只有第二次提交 push 的代码,并且看不到第一次提交push 的 提交记录- 既无第一次commit id》
首先在本地使用 git log 这里可以看到第一次 push commit ID (a39b5…f1)
在这里插入图片描述
然后 使用 git reset --hard cae9f5c7ca 将本地代码回退到 第一次提交push 代码的上一个版本
然后执行 git status 显示如下
在这里插入图片描述
这里千万不要按照 git 提示的 执行 git pull ,如果执行则会将本地代码恢复到 第一次提交push 代码的版本 – a39b5…f1
这里应该直接在本地改自己的代码。然后执行 commit
在这里插入图片描述
然后 执行 git push -f origin you_branch_name (这里一定要加一个 -f–force 表示 强制将本地代码 推送到远程 覆盖)
在这里插入图片描述
如果直接 执行 git push 会提示报错
在这里插入图片描述
这时候去到远程仓库查看 已经看不到第一次 提交 push 的记录,只能看到第二次最新的提交日志
在这里插入图片描述

*********** 结束/

在这里插入图片描述
这个是账号密码 凭证过期(直接把电脑上的凭据管理中相关 账号密码删除即可)

在这里插入图片描述
撤销git commit 操作(但是 修改依然还在)
git reset --soft HEAD^
撤销git add.
git restore --staged 1.php
恢复文件
git restore 1.php

git pull或 git clone报错 fatal: remote error: Git repository not found

git did not exit cleanly (exit code 128) (1469 ms @ 2019/12/25 15:52:41)
在这里插入图片描述

查看git 远程仓库地址

git remote -v

模拟一次 git merge 代码冲突及解决

《1》从master 拉取分支fhm_one 分支,然后新增文件 并且echo “123”; 然后add commit push 最后 在git 仓库发起一个merge 请求。
《2》从master 拉取分支 fhm_two ,更改echo “456”;然后 add commit push 最后 在git 仓库发起一个merge 请求。
《3》在本地分支 fhm_one 修改 echo “112233”;然后 add commit push 最后 在git 仓库发起一个merge 请求 就会产生冲突。
《4》在本地 git checkout master =》 git pull
《5》在本地 git checkout fhm_one =》 git pull =》 git merge master
《6》在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
《XX》写在最后,切记在最后解决冲突之后,git add . git commit -m “解决冲突” 直接 git push ,不要再git pull,否则又会导致本地代码冲突。先把代码冲突解决掉,然后执行下 git rebase --abort 。然后再 git push

解决 HEAD detached at origin/release/fhm_6.6_gray

git checkout origin/release/fhm_6.6.0_gray 改为 git checkout release/fhm_6.6.0_gray

在git仓库工具上个人开发分支fhm_dev 往master 分支merge

在这里插入图片描述
这时候需要把 master 分支代码反merge 到 本地的开发分支解决冲突 push到远程 代码仓库的个人开发分支 然后再merge 到 master 具体如下:
1.git checkout master
2.git pull
3.git checkout fhm_dev
4.git pull
5.git merge master (将本地master 分支代码合并到 本地开发分支 fhm_dev)产生如下的
在这里插入图片描述
phpstorm 集成git 功能参考文章:

fhm_imsdk开发分支往develop分支合,composer.lock文件发生冲突

首先将develop分支拉到本地,merge 到 fhm_imsdk分支,同样发生冲突,然后在本地解决(取版本号交大的),最后将文件push到远程develop上。

增删改查 git config 配置

1.git config --global --add configName configValue 增
2.git config --global --unset configName (只针对存在唯一值的情况) 删
3.git config --global configName configValue 改
4.git config --global configName 查

更改git commit 过的注释内容

git commit --amend 然后直接编辑保存
# git cherry-pick的使用
## git merge 和 rebase 和 cherry-pick 的区别

git merge是用来合并两个分支的。
cherry-pick 可以选择某一个分支中的一个或几个commit(s)来进行操作。
rebase 有点类似 git merge,但是两者又有不同,merge 适合那种比较琐碎的,简单的合并,系统级的合并还是用 rebase 吧。

git pull 报错 Failed to connect to 127.0.0.1 port 12639: Connection refused

在这里插入图片描述
git config --list 查看配置项 发现有两个 url 含有proxy 代理
在这里插入图片描述
然后 cat ~/.gitconfig (查看配置文件) vim ~/.gitconfig(编辑配置文件)

在这里插入图片描述

查看当前分支是从哪个分支切换过来的

git reflog --date=local | grep husk_miniRobot
在这里插入图片描述

git默认不区分大小写,对大小写敏感的不友好

git config --global core.ignorecase false
git config core.ignorecase false

设置忽略文件权限

git config --global core.filemode false

设置不自动转换换行符

git config --global core.autocrlf false

校验混用则拒绝提交

git config --global core.safecrlf true

pull操作默认rebase,避免出现自动merge

git config --global pull.rebase true

git diff 查看的是为暂存的文件修改前后的变化
git diff --cached 查看的是已暂存和上一次提交时的文件区别

composer update 和 composer install 的区别

composer 是 php 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

然而,对于如何『安装他们』,新手可能并不清楚。网上的答案有的说 composer install,有的说composer update,而这两者似乎都能成功把依赖下载下来并安装好,那么他们究竟有何区别呢?

首先要搞清楚的一件事情是,所有的依赖都定义在composer.json中,手册中给出了一些基本用法和例子。你可能已经注意到,在指定版本号的时候,我们并不一定要指明一个精确的版本。那么就有可能发生这么一个情况,对于同一份composer.json,我们在不同时刻拉取到的依赖文件可能不同(因为composer会在满足条件的情况下去拉取最新的那份依赖),从而导致一些异常情况。composer update和composer install正是为了解决这个问题而出现的。

当你执行composer update的时候,composer会去读取composer.json中指定的依赖,去分析他们,并且去拉取符合条件最新版本的依赖。然后他会把所拉取到的依赖放入vendor目录下,并且把所有拉取的依赖的精确版本号写入composer.lock文件中。

composer install所执行的事情非常类似,只在第一步的时候有差别。当你本地如果已经存在一份composer.lock时,它将会去读取你的composer.lock而非composer.json,并且以此为标准去下载依赖。当你本地没有composer.lock的时候,它所做的事情和composer update其实并没有区别。

这意味着,只要你本地有一份composer.lock,你就可以保证无论过去了多久,你都能拉到相同的依赖。而如果你把它纳入你的项目的版本控制中,那么你就可以确保你项目中的每一个人、每一台电脑,不管什么系统,都能拉取到一模一样的依赖,以减少潜在的依赖对部署的影响。当然,请记得,你应该使用的命令是composer install。

那什么时候该使用composer update呢?当你修改了你的依赖关系,不管是新增了依赖,还是修改了依赖的版本,又或者是删除了依赖,这时候如果你执行composer install的时候,是不会有任何变更的,但你会得到一个警告信息

Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.

有人可能会很好奇php是怎么知道我修改了依赖,或者composer.lock已经过期了。很简单,如果你打开composer.lock的话,会发现其中有一个hash字段,这就是当时对应的那份依赖的哈希值。如果值不一致自然而然就知道发生了变更了。

这时候,你应该去通过composer update来更新下你的依赖了。

如果你不希望影响别的已经安装的依赖,仅仅更新你修改的部分,那你可以通过指定白名单来确定要更新的范围,例如composer update monolog/monolog仅会更新monolog/monlog这个依赖,别的依赖哪怕有更新也会被忽略。

git chrrey-pick 相关用法

https://blog.csdn.net/FightFightFight/article/details/81039050

GIT clone 报错 git did not exit cleanly fatal: Authentication failed

在这里插入图片描述
提示报错:致命的身份验证失败
解决方法如下:
在这里插入图片描述
在这里插入图片描述
再次指定clone的时候 会要求从新填写 username password

远程代码仓库已经删除分支本地git branch还是可以看到

git branch -a 本地和远程
git branch -r 远程
git branch -d dev_one 删除本地分支 (-D强制删除 )
使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息
在这里插入图片描述
根据提示,使用 git remote prune origin 命令
在这里插入图片描述

git默认不区分大小写,对大小写敏感的不友好

git config --global core.ignorecase false

设置忽略文件权限

git config --global core.filemode false

设置不自动转换换行符

git config --global core.autocrlf false

校验混用则拒绝提交

git config --global core.safecrlf true

pull操作默认rebase,避免出现自动merge

git config --global pull.rebase true

https://git-scm.com/book/zh/v2

alias自定义命令

https://juejin.im/post/5c9660c45188252d60192c5e
git config --global alias.ck checkout
执行上面config配置后,命令 git checkout,直接输入git ck就ok
alias.xx yy 点后面的xx就代表了我们设置的别名 ,yy是原始命令

git log历史纪录显示优化

使用alias 的 全局配置
git config --global alias.lg “log --graph --pretty=format:’%Cred%h%Creset - %C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ --abbrev-commit --date=relative”

生成密钥

https://git-scm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E7%94%9F%E6%88%90-SSH-%E5%85%AC%E9%92%A5
在项目录下执行 ssh-keygen.exe 会生成一个密钥
然后使用cat ~/.ssh/id_rsa.pub
将密文(整个ssh。。。。PCO)复制到git下
在这里插入图片描述
另外 vi ~/.gitconfig
在这里插入图片描述
另外git config --list
在这里插入图片描述

设置全局或者单个仓库的用户密码:

https://www.cnblogs.com/qqcc1388/p/7217104.html

如果每次git pull 或者 git push 时都要输入用户 密码则执行

git config --global credential.helper store
然后再输入一次用户名 密码 后面就不用了

解决git push报错:error: unable to read askpass response from ‘/usr/libexec/openssh/gnome-ssh-askpass’

在这里插入图片描述
git config user.name “newName”
git config user.email “newEmail”

删除全局配置项:
终端执行命令:
git config --global --unset user.name
编辑配置文件:
git config --global --edit

如果我们git clone的下载代码的时候是连接的https://而不是git@git (ssh)的形式,当我们操作git pull/push到远程的时候,总是提示我们输入账号和密码才能操作成功,频繁的输入账号和密码会很麻烦。
解决办法:
git bash进入你的项目目录,输入:
git config --global credential.helper store
然后你会在你本地生成一个文本,上边记录你的账号和密码。当然这些你可以不用关心。
然后你使用上述的命令配置好之后,再操作一次git pull,然后它会提示你输入账号密码,这一次之后就不需要再次输入密码了。

**husk_3.0 分支得某个节点往master 合: **

1.切到master分支 拉去代码
2.切到husk_3.0拉取代码
3.再切到master 执行 merge commit id(代码push的记录id)

git回退

http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

在这里插入图片描述

常规操作

1.修改文件file.php没有add
git checkout file.php
2.修改文件file.php并且add
首先 git log file.php
然后 git reset fd15184d424facf33f304c52a2fb48ab1f3b538b file.php
最后 git checkout file.php
3.多个文件修改并且 add
首先 git reset HEAD .
然后 git checkout .
4.如果文件已修改并且add commit
首先 git log 此时已经可以看到刚刚commit得记录
然后 git reset --hard 9f455072d0f1df9fef4f876d9899a7a67db6f8f0

查看修改修改的文件
只修改 没有add : git diff
已修改并且add commit : git show 9f455072d0f1df9fef4f876d9899a7a67db6f8f0

分支master代码合并

husk_3.0 分支往master 合:
1.切到master分支 拉去代码
2.切到husk_3.0拉取代码
3.再切到master 执行 merge commit id(代码push的记录id)

例:
在 cc 的 husk3.1分支上,有两个我的commit,
我想把这两个commit 合并到 cc的master上。

我先 执行下面命令:
git checkout master
git pull
git checkout husk_3.1
git pull
git checkout master
git merge 1id

将master代码合并到分支

一、将分支切换到master
git checkout master
二、将代码pull到本地
git pull
三、修改冲突
四、提交到本地
git add .
git commit -m “merge”
五、切换到分支husk_3.1
git checkout husk_3.1
六、merge
git merge master
七、将本地内容push到dev分支
git push

TX git fixed bug 经验

牵扯 git 代码类库bug修复流程:
1.首先 从 library_master 拉取library_dev 分支修bug
2.在git上 发起合并请求 将library_dev 合并到 library_master
3.在git上添加tags 。复制已有最新tags id 加1作为 Name for new tag的值 。Create from = master
4.在相关的服务包文件里 composer update
5.然后将 代码push

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值