Bokaro:提前布局 – 后端沙浦岛
https://juejin.cn/post/6891146425590087693
写在后面
你采用过 Git 吗?也许你还未碰触过Git,也许你早已采用了一两年,但它也许仍然令你疑惑。
责任编辑主要就传授他们自学Git的方式和化解他们邂逅的各式各样Git难题。
假如我们还想对Git有更进一步棋一步棋的科学研究能出访 Git-book。
https://git-scm.com/book/zh/v2
Git常用命令
git二连
git add . 将大部份更动放入甲类
git commit -m “叙述”递交并内含概述重要信息
git pull 从远距库房拉去标识符
git push 发送标识符到远距库房(master分支)
余下常用命令
git log查阅笔记
git log-p 查阅详尽发展史
git log —stat查阅概要统计数据
git status 查阅组织工作区状态
git branch 名称 创建组成部分
git checkout 名称 切换组成部分
git checkout -b 名称 创建并切换到新组成部分
git branch -d 名称 删除该组成部分(不能删除当前所在的组成部分,不能删除没有合并到master上的组成部分)
git branch -D 名称 删除该组成部分(能删除没有合并到master上的组成部分)
git commit –amend 对最新的一条commit进行修正
git reset–hard HEAD^ 丢弃最新递交(未递交的内容会被擦掉)
git reset–soft HEAD^ 丢弃最新递交(未递交的内容不会被擦掉)
git revert HEAD^ 回到某个commit
git rebase 目标基础点 重新设置基础点
git merge 名称 将组成部分合并到head指向的组成部分
git pushorigin localbranch 将标识符发送到远距库房的指定组成部分
git push-d origin branchName 删除远距分支
git stash 暂存标识符
git stash pop弹出暂存标识符
配置别名
对常用的一些命令进行别名配置,提升他们的组织工作效率
git config —globalalias.st status git status ==>git st
git config —global alias.ci commit git commit ==>git ci
git config —globalalias.co checkout git checkout ==>git co
git config —global alias.br branch git branch ==>git br
git config —global alias.sh stash git stash ==>git sh
git config —global alias.pop “stash pop” git stash pop ==>git pop
常见难题和化解办法
git clone失败
报错提示
Could not readfrom remote repository.
Please make sure you have the correct access rights
报错原因
SSH key失效 或者 他们没有权限
化解办法(一)——重新添加SSH key
1.ssh-keygen -t rsa -C “username” (注:username为你git上的用户名)
2.Generating public/private rsa key pair.Enter file in which to save the key (C:\Users\灏忛┈/.ssh/id_rsa): 直接回车
3.C:\Users\灏忛┈/.ssh/id_rsa already exists.Overwrite (y/n)? y 输入y
4.Enter same passphrase again: 直接回车
5.Your identification has been saved in C:\Users\灏忛┈/.ssh/id_rsa. 私钥保存的地址Your public key has been saved in C:\Users\灏忛┈/.ssh/id_rsa.pub. 公钥保存地址
6.根据路径找到公钥,将公钥添加到Git上
化解办法(二)—— 采用http的地址进行克隆
采用这种方式的话需要输入他们的账号和密码,有点麻烦,不建议采用
git pull失败(一)
报错提示
Your localchanges to the following files would be overwritten by merge:
报错原因
其他人修改了该文件递交到版本库中,而我本地也修改了该文件,致使拉去标识符的时候发生冲突
化解办法——贮存更改
依次进行如下操作方式
git stash将组织工作区恢复到上次递交的内容,同时备份本地所做的修
git pull拉取
git stash pop弹出他们最近保存的内容
查阅对应文件 化解冲突
然后git 三连递交他们的标识符
git pull失败(二)
报错提示
Pulling is notpossible because you have unmerged files.
报错原因
修改的文件未递交
这个错误其实是这样子的——其实我之前早已pull过标识符了,然后出现了冲突,化解冲突之后,我想再pull一下时报的错,后来我才知道,化解掉冲突之后是需要再次commit的
化解办法——递交到本地
git add .嗯是的,这里 commit 前也需要先 add 一下git
git push失败
报错提示
fatal: Could not readfrom remote repository.
Please make sure you have the correct access rights
报错原因
原因一:github上没有添加最新的公钥 原因二:网络未连接
原因一化解办法——配置公钥
1.找到公钥打开,并复制其内容
2.添加公钥到github
说一下为什么会这样,因为github和gitlab是共用同一个公钥和私钥,在做公司项目的时候,我clone失败(上面第一个错误)时,重新配置了公钥和私钥,所以此时我的github上没有我最新的公钥,导致我无法push
原因二化解办法——连接网络
网线松动
掉出公司内网,需要重新登录
WiFi没网
撤销对文件的修改
叙述
修改了一个复杂的index.vue文件,修改之后觉得他们写得乱糟糟的,没有一丝头绪,但这个修改文件未递交,我想恢复到它最开始的样子。
化解办法
git checkout \– 文件完整路径(好像不加–这两个横线也能使)
然后关闭这个文件在打开就好了 在提醒你是否保存修改切记不要保存
这是一个非常危险的命令,执行此操作方式后git会用最近的commit覆盖掉整个文件。
除非你确实清楚不想要对那个文件的本地修改了,否则请不要采用这个命令。
他们的标识符被pull下来的标识符覆盖
叙述
他们的标识符刚刚递交,同事然后把我的标识符拉下来之后也递交了,然后我再次把标识符重新pull下来,发现他们刚刚写的标识符全没了(备注:我合同事写的同一个文件)
解决办法(一)
git log找到最近一次递交的commit编码
git reset \–hard 复制的commit编码然后关闭这个文件在打开就好了 在提醒你是否保存修改切记不要保存
化解办法(二)
ctrl + z采用这个办法是必须要知道,他们更动过哪些文件,并且编辑器未被关闭过(我当时编辑器刚好卡了,然后重启了一下编辑器…..)
只想拉取远端标识符 不想commit
叙述
他们的标识符只写了一丁点,旁边的同事说他递交了,叫我pull一下,因为没写什么东西,所以不想commit
异想天开的尝试
当时我就想,可不能直接pull,结果当然是不行啦,git会给你报如下的错误
our localchanges to the following files would be overwritten by merge:
化解办法
git stash暂存他们的打码
git pull拉取标识符
git stash pop弹出暂存
想要回到pull之前的状态
难题叙述
commit之后,把标识符pull下来,出现很多冲突,然后想回到pull之前的状态,将标识符格式化之后再pull
化解办法
git merge \–abort回到冲突之前的状态
git merge —abort将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时假如存在未commit的文件,
git merge —abort在某些情况下将无法重现合并前的状态。(特别是这些未commit的文件在合并的过程中将会被修改时)
查阅他们的commit记录
叙述
公司要求写笔记,想通过查阅一下他们的commit记录来写笔记,
化解办法
git log此方式有缺陷,只能展示最近一次push时的commit记录 最后,只有在GitLab上的发展史看了
最后
不建议我们采用Git的第三方可视化工具,首先有的笔试或者面试是要考查Git的,其次感觉采用git可视化工具之后,就没有那味儿了。
(完)
微软于年初推出了他们的Python教程,我们将其汉化提供给我们,欢迎我们收藏关注哦~(早已汉化完成的20集,我们日更1集,未完成部分我们尽快更新)