目录
git配置
git config --global user.name "蒋劲豪"
git config --global user.email "718009739@qq.com"
Git有4个工作区域:
工作目录:(Working Directory)(Idea码代码的地方)
暂存区:(Stage/Index)(.git文件夹)
本地资源区:(Reposityory或Git Directory)(本地Git仓库)
远程Git仓库:(Remote Directory)(代码托管服务器,例如:GitHub)
本地搭建git仓库
在当前目录新建一个Git代码库,执行命令后新建了一个.git的隐藏文件夹,版本控制的信息都在里面
git init
或者克隆一个远程的仓库到本地
git clone github.com/Jiang-Jin-Hao/sjlt.git
添加到暂存区
git add 1.txt
查看状态,查看文件是否提交到了暂存区,绿色的是add了的,红色的是没有add的
git status
add后撤销
git reset 1.txt
提交到本地Git仓库:
git commit -m "提交"
提交到远程Git仓库:
git push origin master
origin 远程仓库的地址
master 远程仓库的分支
添加远程仓库的的地址
git remote add origin git@gitcode.net:m0_58961367/vue-todolist.git
查看远程仓库的地址
git remote -v
.gitignore
# java
*.class
*.log
*.jar
# idea
.idea/
bin/
*.war
/test/
.gitignore
.gitconfig
LICENSE
README.en.md
HELP.md
*.iml
*.mvn
.mvn/
mvnw
mvnw.cmd
# node.js
node_moudles
tmp/
git分支
git branch newImage | 新建一个分支newImage |
git branch -m main | 将当前分支重命名为main分支 |
git checkout newImage | 切换newImage分支 |
git checkout -b bugFix | 创建新分支bugFix并切换过去 |
git merge bugFix | 把bugFix分支合并到当前分支 |
git rebase main | 在bugFix分支上,把bugFix分支里的工作移到main分支上, 并且把焦点移到新提交上 |
git log | 查看提交记录前4位 |
git checkout main^1 | main向上移动1一个提交记录 |
git checkout main~1 | 同上 |
git branch -f main HEAD~3 | 强制让main到前3格去 |
-f | 强制执行 |
git reset HEAD~1 | 撤销变更,可以撤销本地分支 |
git revert HEAD | 复制上一格,并提交到新格,相当于撤销,可以撤销远程分支 |
git cherry-pick C2 C4 | 复制C2提交C2,复制C4提交C4 |
git rebase -i HEAD~4 | 往上复制3格,加上自身这格,一共4格, 用于复制的祖先节点作为父节点复制和粘贴;可以打开UI界面重新排序 |
git commit --amend | 克隆当前格,粘贴为当前格的兄弟节点 |
git rebase caption main | 把main合并到caption上 |
git tag v1 c1 | 给c1上一个v1的标签 |
git远程仓库
git fetch | 从远程仓库下载本地仓库缺失的提交记录 |
git merge o/master | 将o/master合并到当前分支 |
git pull | git fetch和git merge的缩写 |
git fakeTeamwork foo 3 | 远程仓库的提交,foo提交3次 |
git push origin main | 将main推送到远程origin仓库 |
git push origin foo:main | 向远程仓库提交foo,并把main切换到此处 |
方法1,如果你基于旧代码已经进行的编写,而远程代码发生了变化,那么你需要把旧代码变成基于新代码的,再进行远程提交,此方法会在远程仓库美没有合并的记录,命令如下
git fetch # 拉取远程的提交
git rebase o/main # 将当前分支与o/main分支合并,并生于o/main下方
git push
方法1的代码简写形式,代码如下
git pull --rebase # 远程仓库合并到本地仓库,本地仓库作为新提交,远程仓库作为旧提交
git push
方法2,此方法会在远程仓库有合并的记录,命令如下
git fetch # 拉取远程的提交
git merge o/main # 将o/main分支合并到当前分支
git push
方法2的代码简写形式,代码如下
git pull
git push
merge与rebase的区别
rebase使提交树更干净
merge保留的提交树的历史
如果远程仓库上传了垃圾文件
(一)查看本地仓库有哪些垃圾文件
git rm -r -n --cached .
(二)删除本地仓库的垃圾文件
git rm -r --cached .idea
(三)查看自己干了哪些操作,查看git的状态:
git status
(四)将删除操作提交到本地仓库
git commit -m "删除了一些垃圾文件"
(五)使用强制push的方法,这样远程的垃圾文件就没有了
git push -f origin master
-f 强制推送
-u 表示下次继续push的这个远端分支的时候推送命令就可以简写成“git push”
版本控制
查看提交日志
git log
本地版本回退
git reset --hard 8032ff7014fb8727535d86aee491deea37410c18
远程仓库版本回退:
1.查看提交记录
git reflog
2.回滚
git reset --hard Obfafd
3.强制提交,因为这时本地仓库已经落后远程仓库了
git push -f origin master
git rm -r --cached :从索引中删除文件。但是本地文件还存在, 只是不希望这个文件被版本控制(删除暂存区和版本库的文件,但保留了工作区的文件)
-r :删除文件夹
git解决上传大小限制100MB,在项目下运行,这样大小就变成了5G
git config http.postBuffer 5242880000
idea文件颜色
黄色 忽略
红色 未加入
绿色 已加入,未提交
白色 已加入,已提交,无改动
蓝色 已加入,已提交,有改动