一、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 pushgit push 远程仓库名 本地分支名:远程分支名将本地指定分支推送到远程仓库分支同名可省略一个分支名示例git push origin dev:iframe2.克隆远程仓库(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(6) 更改文件名大小写git mv src/jobTask.vue src/JobTask.vue(7) 查看Git的大小敏感设置以及修改大小写敏感设置git config core.ignorecase执行后会返回一个值true 表示 Git 不敏感不区分大小写但保留大小写这是 windows 和 macos 上的默认值false表示Git 敏感区分大小写。通常是 Linux 系统上的默认值git config core.ignorecase false 一般不建议修改这个注意 先更新远程仓库的代码再提交自己的代码避免冲突。4.git stash(1) 查看所有stash列表git stash list每个 stash 都会有一个唯一的引用编号例如 stash{0}、stash{1} 等(2) 恢复指定的stashgit 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) 清理stashgit stash drop stash{n}清空指定stashgit 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仓库使用git操作svn仓库常用命令(1)通过git克隆svn远程仓库地址git svn clone svn仓库地址(2) 暂存本地的修改文件git stash(3) 拉取服务器更新的代码git svn pull rebasegit svn pull 和 git svn pull rebase的区别git svn pull rebase: - git svn fetch 从SVN仓库中获取最新提交 - git rebase 将本地分支的更改重新应用到从SVN获取的最新提交之上变基操作 git svn pull: - git svn fetch - git merge 将SVN获取的最新提交合并到当前本地分支(4) 恢复暂存的文件git stash pop恢复最近一次保存的更改并从 stash 栈中移除git stash apply恢复最近一次保存的更改但不会从 stash 栈中移除(5) 恢复到指定的stashgit stash pop stash{1}(6) 添加文件到暂存区 (同git)git add .(7) 提交到本地仓库(同git)git commit -m “提交信息”(8) 推送到远程svn仓库git svn dcommit(9) 撤销最近一次提交1.git reset --soft HEAD^撤销最近一次提交,但保留所有更改在暂存区中方便重新修改或重新提交(相当于已经执行了git add)撤销的提交仍然存在于 Git 的历史中可以通过git reflog找到并恢复2.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 mastergit 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 分支gitpush origin-ddiv-test(10) 更新本地的远程跟踪分支列表确保已删除的分支不再显示git fetch -p四、其他git操作1.git更换远程仓库地址操作步骤1).打开项目文件夹中的 .git2).打开config3).修改远程仓库地址2.gitignore 忽略文件不起作用新建的文件在git中会有缓存如果某些文件已经被纳入版本管理中那么就算在.gitignore中已经声明了也会不起作用。需删除git的本地缓存#清除当前的本地Git缓存git rm -r --cached .#应用 .gitignore 等本地配置文件重新建立Git索引git add .#提交当前Git版本并备注git commit -m update .gitignore3. 配置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.proxy5. 查看git配置git config --global -l6.在git中忽略某些文件git update-index --skip-worktree file用于标记某些文件或目录使其在工作目录中的更改不会被Git 跟踪。取消标记git update-index --no-skip-worktree file主要用途忽略本地配置文件某些文件可能包含本地开发环境的配置信息这些信息不应该提交到远程仓库但你又不想完全忽略这些文件例如本地配置文件。避免冲突在团队开发中某些配置文件可能因本地环境不同而频繁发生变化使用 --skip-worktree 可以避免这些文件在合并时产生冲突。与 .gitignore 的区别.gitignore用于完全忽略文件这些文件不会出现在 Git 的任何跟踪列表中。–skip-worktree用于标记已经跟踪的文件使其在工作目录中的更改不会被跟踪但文件仍然在仓库中。最后以上命令是在工作中用到的还有一些目前没有遇到持续更新中……四、commit类型使用git遇到的问题1. git add . 无反应问题描述初始化项目时想要将项目提交到仓库中执行git add .命令之后半天没有反应。解决方法1).删除index.lock 文件执行命令rm -f .git/index.lock2).重新git add .2. 报错OpenSSL SSL_read: Connection was reset, errno 10054修改git设置解除SSL验证执行命令git config --global http.sslVerify false3.执行完git pull --rebase之后如果有合并冲突使用以下三种方式处理这些冲突git rebase --abort会放弃合并回到rebase操作之前的状态之前的提交的不会丢弃git rebase --skip会将引起冲突的commits丢弃掉慎用git rebase --continue合并冲突结合git add 文件命令一起用与修复冲突提示开发者一步一步地有没有解决冲突。fix conflicts and then run “gitrebase --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.proxy2.配置git 代理git config--global http.proxy http://地址:端口 git config--global https.proxy http://地址:端口