????声明: 1. 本文为我的个人复习总结, 并非那种从零基础开始普及知识?内容详细全面, 言辞官方的文章 ??????????????2. 由于是个人总结, 所以用最精简的话语来写文章 ??????????????3. 若有错误不当之处, 请指出
清空修改:
-
放弃 工作区 中 dirName 文件夹下的全部修改 命令:git checkout dirName -
放弃 工作区 中某个文件的修改 命令:git checkout filename -
强制放弃 工作区 和 暂存区 的修改 命令:git checkout -f
查看未提交的文件等状态信息: git status
版本回退:
git reset --hard 版本号
git reset --hard HEAD^^^
git reset --hard HEAD~3
git init: 使文件夹被git管理起来
git reflog: 查看版本简略信息 即看id前缀 git log: 查看版本详细信息 即能看出id全称
分支:
有这几种分支:
- 本地分支
- 远程 fork项目的 orgin分支
- 远程 原项目的 remoteHadoop分支
查看分支:
-
git branch 查看本地分支 -
git branch -r 查看远程分支 -
git branch -a 查看本地和远程所有分支
切换分支:
git checkout test
创建分支:
// 会基于当前分支拷贝 进行创建新的本地分支
git branch test // 创建并切换分支: git checkout -m test
// 将新分支推到远端
git push origin test:testOrigin
删除分支:
-
对本地分支: git branch -d test -
对远程origin分支:
- git push origin :test:testOrigin // 推送一个空分支过去, 即相当于删除
- git push origin --delete testOrigin
重命名分支:
-
对本地分支: 这个没意义: git branch -m oldbranch newbranch -
对远程origin分支:
- 删除 origin oldbranch
- push 本地oldbranch 到 origin的 newbranch
合并 test 分支到 master:
git merge test master
- pull 拉下来(即 update 操作), 将本地代码更新为与远程一致
? git pull 时由于 暂存区有提交会报错, 故需要 git reset --hard (或 git checkout -f ) 回退到上次修改之前的状态, 然后再 pull
? idea里git update操作时, merge 记录更详细, rebase 记录更简略
push错了如何回退?
- git log 查看版本号 按下 Enter 加载更多,按下 q 退出浏览 log
- git reset --hard 版本号 (在本地回退)
- git push -f origin 分支 (将本地库强制覆盖远端)
fork后的项目:
真实开发中, 有项目组公共的项目, 记作 bigdata/hadoop, 我们不能直接在这上面进行操作,
应该先把它fork到自己账号(记作 xjx/hadoop), 然后操作fork的项目
关于master分支, bigdata/hadoop 叫做remoteHadoop/master, xjx/hadoop 叫做origin/master
git提交流程:
先将 remoteHadoop bigdata/hadoop fork 成 origin xjx/hadoop
-> git push 到origin xjx/hadoop
-> Create Merge Request(pull request) 申请同步到 remoteHadoop bigdata/hadoop
-> review 由leader进行审核
-> Accept Merge Request 审核通过, 允许把改动同步到 remoteHadoop bigdata/hadoop
fork后的项目 如何同步原项目新增了的一个文件呢?
- 为 bigdata/hadoop 的git地址 起个别名 remoteHadoop
git remote add remoteHadoop git@github.com:bigdata/hadoop.git
- 感知 remoteHadoop 的新数据
git fetch remoteHadoop
- 将新数据拉取到 origin
git merge remoteHadoop/main
- push到origin (使用idea时选用origin)
git push origin master
fork后的项目 如何同步原项目新增了的一个分支 test-new 呢?
- 为 bigdata/hadoop 的git地址 起个别名 remoteHadoop
git remote add remoteHadoop git@github.com:bigdata/hadoop.git
- 感知 remoteHadoop 的新分支
git fetch remoteHadoop
- 创建一个本地分支,追踪关系到远程 test-new
git checkout -b test-new remoteHadoop/ test-new
- push到origin (使用idea时选用origin)
git push origin test-new
一些报错:
git操作时, 注意看控制台反馈是否成功了 是否有报错
-
如果报错文件名太长: 就输入 git config --system core.longpaths true 这条命令 -
git 找不到明明已存在的分支:
问题复现 :
git checkout xjx
报错:error: pathspec ‘xjx’ did not xmatch any file(s) known to git
解决方法:
git fetch 再切换分支: git checkout xjx
怎么撤销一个已经push了的commit?
git revert -n 版本号
然后 git commit、git push 即可
误删了一个分支怎么办?
-
即基于某个版本号 进行创建一个新分支即可 git branch test-recover d46998d32a19c830f5917695306bd4bd82d29d62 -
推送到远端: git push origin test-recover:test-recover
|