git的问题持续更新

0.提交本地项目到gitlab初始化仓库

解释:本地项目建立和服务器端项目的关联关系

#初始化本地仓库
git init 
#关联项目地址(最后表示项目地址)
git remote add origin git@gitlab.xxx.com:xxx/xxx.git
#查看 git 远程仓库的信息
git remote show origin
#拉取项目
git clone git@gitlab.xxx.com:xxx/xxx.git
#如果本地要推送远端,先拉下项目
git pull origin master
#移除缓存的用户信息
git config --system --unset credential.helper

解释:用于当前项目的用户名设置,后续代码的提交会展示提交人信息展示。

#先配置当前的用户和邮箱(全局就是把global换local,不建议使用)
git config --local user.name "xxx"
git config --local user.email "xxx@163.com" 

#配置完检查下
git config --list --local

在这里插入图片描述

#添加所有文件至暂存区
git add . 
#添加提交注释
git commit -m "Initial commit" 
#推送到git
git push -u origin master

解释:这步就是要把项目推送到git上,先暂存本地再推送


2.Git代码提交

#先查看状态
git status

#提交到缓存区(建议不要使用git add. 除非你全部要提交)
git add 

#推送代码到本地git库
git commit -m '注释'

#拉取远端代码(我这里是拉取最新的dev代码)
git pull origin dev

#推送到远端(如果本地分支和远端分支名字一样直接push)
git push origin 本地分支名:远端分支名

小结:idea界面化用多了,碰到问题就不会解决。所以都使用手动推送,先查看文件状态,再用add命令添加进缓存区,然后再提交到本地库,这里要注意提交完要拉取下你未来要合并的分支,避免分支落后,然后最后才是push。


2.Git代码写错分支,还未提交的情况(暂存需求处理紧急bug)

#将修改的代码暂存到stash,
git stash

#暂存内容并添加提示信息
git stash save "message"

解释:git stash会把所有未push的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。

#切换到正确的分支
git checkout targetbranch

解释:用于切换分支,假如我的分支叫yeapt,这段代码就改为 git checkout yeapt

#查看整个暂存区
git stash list

#从stash中取出最近一个暂存代码(取出就会被移除)
git stash pop
#取出不会被移除
git stash apply
#取出指定一次的暂存代码
git stash apply stash@{2}

#清除所有暂存部分
git stash clear

#清空第一个队列内容
git stash drop stash@{0}

#最新保存的stash和当前母录的差异
git stash show

注意:在powershell的命令行里{}花括号,代表代码块执行标识符,这个命令会失效,直接替换idea的命令行为cmd
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解释:用于把stash暂存区的代码取出,并将它移除出暂存区列表

小结:写代码前还是观察下分支是否正确,要不然还是比较麻烦的,完成上述操作后就可以进行正常的commit和push。个人感觉最常用的还是你在写一个需求,然后线上紧急bug插队了,那你只能停下手中的活儿去改bug,这个时候就可以暂存你的代码。

3.本地拉取不到最新的代码

git fetch --all
git reset --hard origin/dev
git pull origin:dev dev

解释:fetch先远程获取代码库,然后用reset将本地的状态回退到和远程的一样,最后重新拉取下代码。
小结:我这边检查的时候发现git里的origin的代码是最新的,但是local是缺失的。

4.本地分支关联远端分支

git checkout -b localBrach origin/dev

解释:localBrach表示将要创建的本地分支名字,origin/dev表示要关联的远端分支名字

git branch -d localBrach

在这里插入图片描述
小结:如果本地分支已存在,可以执行这个命令进行删除,删除前要切换到别的分支。

5.更新本地分支为最新代码

git pull 
git merge origin/dev
git push

解释:pull表示拉取代码,merge合并分支,push提交代码
在这里插入图片描述
小结:如果本地分支不是最新代码,并且已经编写了代码,则使用这个命令更新分支。

6.合并多个提交

#查看近10次的提交
git log --oneline -10

#回退到指定版本
git reset --haed fce604f41

解释:10表示近多少次提交,要想退出查看提交状态,按Q即可。
在这里插入图片描述

#合并前5个提交
git rebase -i HEAD~5

#合并到指定提交
git rebase -i 0b26a0f775

解释:0b26a0f775表示提交的编码,回车后就是vim的编辑。规则:pick表示使用【commit】,s表示【使用commit,但合并到上一个commit中】。

本来squash的地方都是pick,我们改成squash就好了,编辑完成,esc,再:wq保存并退出即可。
在这里插入图片描述

#推送(有风险)
git push --force

小结:如果不慎提交了过多次无用代码,可以直接用这个方法进行合并。

7.分支落后处理

#拉取远端分支
git fetch

#和远端分支合并
git rebase origin/dev

#强制推送
git push -f 

在这里插入图片描述


8.gitignore忽略文件问题

“/”开头表示整个目录;
星号“*”通配多个字符;
问号“?”通配单个字符;

*.log
xp.wlt
zh/


git rm -r --cached .
git add .
git commit -m '描述'
git push

小结:如果之前已经追踪的代码,要记得用上面的命令执行,要不然git ignore文件会不生效。

#react+springboot
/.idea/
target/
dist/
node_modules/
package-lock.json

常用指令

#拉取远程指定分支到本地指定分支
git pull origin <远程分支名>:<本地分支名>

#将本地分支关联远程同名分支
git push --set-upstream origin <本地分支名>

#更换关联的远端分支
git branch --set-upstream-to=origin/<远端分支名> <本地分支名>

#已有git仓库,本地代码推送异常时先执行命令再push
git pull origin master --allow-unrelated-histories

#在写忽略文件前被纳入版本管理的软件,用以下三个命令来消除但是要提交一次
git rm -r --cached .
git add .
git commit -m '移除在 .gitignore 创建之前被纳入版本管理的文件'

#从远程更新分支
git remote update origin --prune

#修改远端分支名称(本地分支重命名,删除远端旧名称分支,推送新名称分支到远端)
git branch -m oldName newName
git push origin :oldName
git push origin newName:newName

#创建新的本地分支并推送
git checkout -b 本地分支名 origin/远程分支名
git push origin 本地分支名:远程分支名

#强制推送
git push origin HEAD:强推分支名 --force

#回到指定版本(hard:不保留内容,soft:保留内容)
git reset --hard 提交的id

#修改远程仓库地址
git remote rm origin
git remote add origin [new-repo-url]
git push --set-upstream origin master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值