git/git-svn使用总结(持续更新)

一、git的基本操作

1.本地项目绑定远程仓库

(1) 初始化仓库
git init
(2) 设置远程仓库地址
git remote add origin 远程仓库地址
(3) 将本地代码提交暂存区
git add .
(4) 将暂存区代码提交到本地仓库
git commit -m "提交说明"
(5) 拉取远程仓库代码
git pull origin master/main
(6) 推送到远程仓库
git push

2.克隆远程仓库

(1) 在github/gitee上新建一个仓库
(2) 克隆远程仓库
git clone 远程仓库地址
(3) 在克隆好的仓库中进行编辑,后续的提交命令都一样

3.常用命令

(1) 查看当前暂存区的状态:
git status
(2) 更新代码,获取远程仓库的代码
git pull
(3) 添加文件到暂存区
git add test.txt (添加单个文件)
git add . (添加全部有更改的文件)
(4) 提交文件
git commit -m "填写提交信息"
(5) 推送文件到远程服务器
git push

注意: 先更新远程仓库的代码,再提交自己的代码,避免冲突。

4.git stash

(1) 查看所有stash列表
git stash list
每个 stash 都会有一个唯一的引用编号,例如 stash@{0}、stash@{1} 等
(2) 恢复指定的stash
git stash apply stash@{n} 恢复指定的 stash 不会从stash列表中删除
n 是stash的索引编号
git stash pop stash@{n} 恢复指定的 stash 并从stash列表中删除
(3) 查看stash的详细内容
在恢复之前,你可以查看某个 stash 的具体更改内容,以确认是否是你需要的版本
git stash show -p stash@{n}
(4) 清理stash
git stash drop stash@{n} 清空指定stash
git stash clear 清空所有stash

注: 如果报错 error: unknown switch 'e
通常是由于在 PowerShell 或某些 IDE 终端中执行 git stash apply stash@{0} 命令时,花括号 {} 被错误解析导致的.

方法一:转义花括号
在 PowerShell 或某些 IDE 终端中,可以通过反引号对花括号进行转义。这种方法适用于单次操作,但每次都需要手动转义。例如:

git stash apply stash@`{0`}

方法二:更改默认终端
如果使用的是 IDE(如 IntelliJ IDEA 或 VS Code),可以将默认终端从 PowerShell 更改为 Git Bash 或 Command Prompt。具体步骤如下:
打开 IDE 设置。
搜索 Terminal 或 Default Profile。
将默认终端更改为 Git Bash 或 Command Prompt。
更改后,再次运行命令时就不会出现该错误。

方法三:使用引号包裹
如果不想更改默认终端,也可以通过将 stash@{0} 用引号包裹来避免解析错误:
git stash apply "stash@{0}"

二、使用git操作svn仓库

常用命令

(1)通过git克隆svn远程仓库地址
git svn clone svn仓库地址
(2) 暂存本地的修改文件
git stash
(3) 从svn repo中同步最新代码
git svn pull rebase
(4) 恢复暂存的文件
git stash pop
(5) 添加文件到暂存区 (同git)
git add .
(6) 提交到本地仓库(同git)
git commit -m “提交信息”
(7) 推送到远程svn仓库
git svn dcommit
(8) 撤销到commit
git reset --soft HEAD^
(9) 撤销暂存区的代码
git reset --hard HEAD^

注意:使用git操作snv仓库,拉取与推送代码时注意暂存区不能有文件,要先用git stash把不需要提交的文件藏起来.

三、分支相关操作

(1) 查看分支
git branch 查看本地的所有分支
git branch -r 查看远程仓库的所有分支
git branch -a 查看所有分支(本地分支+远程仓库分支)
(2) 创建分支并切换到新分支
git checkout -b 分支名
(3) 切换分支
git checkout 分支名
(4) 切换到主分支(以下两种都可)
git checkout master
git switch master
(5) 合并分支代码到主分支(同时合并分支上的提交记录)
git merge 分支名 --squash (加上 --squash 可合并提交记录)
(6) 在主分支上提交到本地仓库
git commit -m "提交信息"
(7) 推送到svn远程仓库
git svn dcommit
(8) 删除本地分支
git branch -d 分支名 会在删除前检查merge状态,如果分支包含未合并的更改和未推送的提交,则不允许删除本地分支
git branch -D 分支名 强制删除分支
git branch -m 分支名 删除已经合并的分支,并将它们合并到当前分支
(9) 删除远程分支
git push 远程仓库别名 --delete 远程仓库分支名
示例:删除远程仓库中的dev-test 分支

git push origin -d "div-test"

(10) 更新本地的远程跟踪分支列表,确保已删除的分支不再显示
git fetch -p

四、其他git操作

1.git更换远程仓库地址

操作步骤:

1).打开项目文件夹中的 .git
在这里插入图片描述
2).打开config
在这里插入图片描述
3).修改远程仓库地址
在这里插入图片描述

2.gitignore 忽略文件不起作用

新建的文件在git中会有缓存,如果某些文件已经被纳入版本管理中,那么就算在.gitignore
中已经声明了也会不起作用。需删除git的本地缓存;

#清除当前的本地Git缓存
git rm -r --cached .
#应用 .gitignore 等本地配置文件重新建立Git索引
git add .
#提交当前Git版本并备注
git commit -m "update .gitignore"

3. 配置git代理

git config --global http.proxy http://地址:端口
git config --global https.proxy http://地址:端口

4.取消git代理

//取消http代理
git config --global --unset http.proxy
//取消https代理 
git config --global --unset https.proxy

5. 查看git配置

git config --global -l

最后:
以上命令是在工作中用到的,还有一些目前没有遇到,持续更新中……

使用git遇到的问题

1. git add . 无反应

问题描述:
初始化项目时,想要将项目提交到仓库中,执行git add . 命令之后半天没有反应。
解决方法:
1).删除index.lock 文件,执行命令:rm -f .git/index.lock
2).重新git add .

2. 报错:OpenSSL SSL_read: Connection was reset, errno 10054

修改git设置,解除SSL验证
执行命令:git config --global http.sslVerify "false"

3.执行完git pull --rebase之后如果有合并冲突,使用以下三种方式处理这些冲突

  • git rebase --abort
    放弃合并,回到rebase操作之前的状态,之前的提交的不会丢弃;
  • git rebase --skip
    会将引起冲突的commits丢弃掉(慎用!!);
  • git rebase --continue
    合并冲突,结合"git add 文件"命令一起用与修复冲突,提示开发者,一步一步地有没有解决冲突。(fix conflicts and then run “git
    rebase --continue”)

4.git clone 报错

fatal: unable to access 'https://github.com/janarosmonaliev/github-globe.git/': Failed to connect to github.com port 443 after 21098 ms: Timed out
原因:
使用了网络代理,需要配置Git的代理设置
解决方法:
1.取消代理

//取消http代理
git config --global --unset http.proxy
//取消https代理 
git config --global --unset https.proxy

2.配置git 代理
在这里插入图片描述

git config --global http.proxy http://地址:端口
git config --global https.proxy http://地址:端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值