用github蛮多,但git没怎么用,看着视频对着写点笔记以及操作
已提交(committed) 已提交表示数据已经安全的保存在本地数据库中。
已修改(modified) 已修改表示修改了文件,但还没保存到数据库中。
已暂存(staged) 暂存表示对一个已修改文件的当前版本做了标记使之包含在下次提交的快照中。(相当于buffer)
所以会有三个工作区域
工作区 简单的理解为在电脑里能看到的目录,比如自己创建的本地项目目录
暂存区 Git的版本库里存了很多东西,其中最重要的就是称为stage (或者叫index) 的暂存区,还有Git自动建的第一个分支master, 以及指向master的一个指针叫HEAD。
git仓库区 工作区有一个隐藏目录git,这个不算工作区,而是Git的版本库。
新建一个git文件,并初始化,这个即git工作区,.git即git仓库,隐藏目录
git add添加某个文件到缓冲区(暂存区)
git status查看属性
git commit -m 'git版本初始化以及文件提交操作' // /m后为提交的解释
git log 查看日志
企业中在多人的项目开发环境下,使用Git版本控制工具对项目版本进行管理时,通常会对项目不同版本的文件进行查看,项目历史版本,未来版本的切换操作,对于一个项目开发人员,此时对于Git的这些基本命令操作就成为了一项基本技能。
修改git01.txt文件,可以查看属性 提示暂为被加到缓冲区
添加到缓冲区
commit提交
如果不添加到缓冲区直接commit,会无法添加成功。
差异比较说明
---表示变动前的文件
+++:表示变动后的文件
变动的位置用两个@作为起首和结束
@@-1,2 +1,3@@:减号表示第一个文件,"1"表示第1行,"2"表示连续2行。同样的,"+1,3"表示变动后,成为第二个文件从第1行开始的连续3行。
已经添加到暂存区的文件可以使用
git reset HEAD撤销
简化操作,显示少页的log
^表示回退到上一个版本
^^表示回退到上两个版本
git reset --hard HEAD~1//num表示回退的多少个版本
如果想跳到前面的版本,使用
git reset --hard b4740
如果回退到前面的版本,但是已经看不到哈希字符串了
可以使用git reflog
在GIt中,删除文件同样是一个修改操作, 即在Git世界中,Git仅仅关注文件是否被修改(文件添加,更新,删除)
在工作区添加新文件git02.txt并删除,如果是工作区的删除,但是已经上传到本地仓库了,所以可以误删恢复
git checkout -- git02.txt
注意如果本地仓库没有,那不能恢复的
如果想彻底删除使用
git rm git02.txt 会将工作区和仓库区的都删除
使用git ls-files 查看仓库文件,不是工作区的
Git是一个分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上,截止目前,并没有看到分布式的环境,因为以上的操作都在在本地发生的,对于Gt除了前面提到的本地版本库外,Git 支持远程仓库的托管服务即使用者可以将本地版本库中的文件托管到远程服务品进行存储,这样就极大的方便开发,无论你走到哪,只要你的机器能够联网,就可以通过远程的仓库地址得到一份相同的项目库文件,并且下载到本地的文件版本记录与远程文件版本保持一致,井且可以很方便的实现多人协同开发操作。
对于Git远程仓库GitHub: Let’s build from here · GitHub是比较知名的一一个,目前已被微软收购,而国内比较知名的当属码云官方了.当然除了这些远程仓库外,在公司,有的公司处于安全考虑,可能会自己搭建一套Git服务区来自Git的远程仓库,对于内部仓库会有专门人员来进行维护操作。
这里以当下比较流行的GiHub仓库来介绍Git远程仓库基本操作与使用。
找到对应的仓库点击code,有一段git的下载
在目标目录下右键打开控制台 使用
git clone 网址
或者在命令行上创建一个新的存储库
echo "# gitTest" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/yinhai1114/gitTest.git
git push -u origin main
或者从命令行推送一个现有的存储库
git remote add origin https://github.com/yinhai1114/gitTest.git
git branch -M main
git push -u origin main
GitHub - yinhai1114/gitTest: 推送本地仓库到远程仓库
通过ssh-key将本地文件上传指定github仓库 - 知乎
开发企业项目中在使用Git或者其他类似版本控制软件对项目版本进行管理时,多人合作的项目在开发时通常不会直接在主master上进行操作,而是重新开辟新的分支,在新的分支上进行开发调试等操作,当项目调试通过时才会将分支项目的代码合并到主干中,这是在实战中比较好的一种策略,特别是多人协同开发一个项目的情况下尤其明显。
Git 对于分支操作提供了一下基本命令
拉取分支 git check -b left01
对分支进行操作不会影响主干main
合并分支时如果两个分支都被修改,那么会需要人为接入进行合并参考下列
git merge合并分支代码# Please enter a commit message to explain why this merge is necessar У git退出编辑信息_少吃一口都不行的博客-CSDN博客
分为本地冲突和多人协同冲突,本地冲突需要改变不相同的内容,保留某个或者合并
多人冲突 解决方法需要每次先pull拉取代码,然后查看不相同的内容进行修改,然后在push
setting内搜索git,添加文件路径,点击test测试git是否已经找到,出现版本号即成功
github添加远程仓库
获取仓库 使用在新页面checkout for version或者在已有的项目内new -- new project form version control