大家好,我是南城余!今天给大家分享下Git的再学习,本次学习弥补了之前不太懂Git原理以及其他Git命令了解,给大家贴上了我学习的网站链接,以供我写的不清楚的时候,大家可以翻阅。参考网站链接:
https://pdai.tech/md/devops/tool/tool-git.html https://www.runoob.com/git/git-tutorial.html(菜鸟教程) https://zhuanlan.zhihu.com/p/193140870(知乎)
本次推文系统学习了代码提交和同步代码,代码撤销和撤销同步的架构图(可认为工作原理),其余有关git常用命令可以看上面两个链接,推荐菜鸟。本地和远程仓库建立链接,可以看上方知乎链接
.前言
什么是git?为什么要学习?
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
作为一个程序员,git是必备的,因为你需要将你的代码托管到代码仓库,可以很好的管理你的代码版本,遇到bug回退代码版本,虽然现在的编译器也支持代码历史记录,但依然抵触不了,代码仓库是个好东西。
主流代码仓库有
并且作为程序员,我们要有开源精神,帮助互联网时代共建美好未来
可以看下面csdn文章链接开源精神
https://blog.csdn.net/phena/article/details/109635639
不管是什么开发工具,其实都有可视化操作工具
例如数据库有navicat,redis有Another Redis Desktop Manager,所以git也不例外。
如果你实在不想敲命令,可以下载git可视化管理工具
参考链接:
https://www.runoob.com/git/source-tree-intro.html
.正文
代码提交和同步代码
架构图
Git操作代码提交和同步代码-常用操作命令
第0步:工作区与仓库保持一致
git status
第1步:文件增删改,变为已修改状态
第2步:git add ,变为已暂存状态
git add --all #当前项目下的所以更改 git add . #当前目录下的所有更改 git add xx/xx.py xx/xx2.py #添加其中几个文件
第3步:git commit,变为已提交状态
git commit -m "这里写此次提交的描述"
第4步:git push,变为已推送状态
git push -u origin master #第一次需要关联分支 git push #之后推送就不用指明应该提交的远程分支了 git branch #可以查看本地仓库分支 git branch -a #可以查看本地仓库和远程仓库的所有分支
实操演示
实操参考链接(知乎):
https://zhuanlan.zhihu.com/p/193140870
来源TechmindWave项目
链接:
https://mp.weixin.qq.com/s/FlzCd4PqOReqxszU6Nfw_g
1)在GitHub上创建仓库
创建成功后,你可能用到的命令
2)建立本地仓库
进入git命令台
输入git init,初始化项目
3) 将所有文件添加到仓库中
git add .
4)修改文件描述
git commit-m "first commit"
5)关联github仓库
git branch-M main git remote add origingit@github.com:nanchengcyu/TechMindWave-frontend.git #改为自己的
6)上传本地代码
git push -u origin main
代码撤销和撤销同步
架构图
Git常用操作命令 - 代码撤销和撤销同步
已修改,但未暂存
git diff #列出所有的修改 git diff xx/xx.py #列出指定文件修改 git checkout #撤销项目下的所有修改 git checkout .#撤销当前文件夹下的所有修改 git clean -f # untracked状态,撤销新增的文件 git clean -df # untracked状态,撤销新增的文件和文件夹
已暂存,未提交
这个时候已经执行过git add,但未执行git commit,但是用git diff已经看不到任何修改。因为git diff检查的是工作区与暂存区之间的差异。
$ git diff --cached # 这个命令显示暂存区和本地仓库的差异 $ git reset # 暂存区的修改恢复到工作区 $ git reset --soft # 与git reset等价,回到已修改状态,修改的内容仍然在工作区中 $ git reset --hard # 回到未修改状态,清空暂存区和工作区
git reset --hard 操作等价于 git reset 和 git checkout 2步操作
已提交,未推送
执行完commit之后,会在仓库中生成一个版本号(hash值),标志这次提交。之后任何时候,都可以借助这个hash值回退到这次提交。
$ git diff <branch-name1> <branch-name2> # 比较2个分支之间的差异 $ git diff master origin/master # 查看本地仓库与本地远程仓库的差异 $ git reset --hard origin/master # 回退与本地远程仓库一致 $ git reset --hard HEAD^ # 回退到本地仓库上一个版本 $ git reset --hard <hash code> # 回退到任意版本 $ git reset --soft/git reset # 回退且回到已修改状态,修改仍保留在工作区中。
# 已推送到远程
$ git push -f orgin master # 强制覆盖远程分支 $ git push -f # 如果之前已经用 -u 关联过,则可省略分支名
慎用,一般情况下,本地分支比远程要新,所以可以直接推送到远程,但有时推送到远程后发现有问题,进行了版本回退,旧版本或者分叉版本推送到远程,需要添加 -f参数,表示强制覆盖。
拉取仓库代码到本地
参考链接:
https://blog.csdn.net/soulerge/article/details/118972737
git clone https链接
Git常用命令
git clone、git push、git add 、git commit、git checkout、git pull
参考代码含义
https://www.runoob.com/git/git-basic-operations.html
Git二次上传多次上传方法
https://blog.csdn.net/weixin_50492082/article/details/108777018