本博客是关于使用git工具来操作仓库,读者应先去了解git的基本概念,了解git的工作流程,可参考以下的博客:
https://www.liaoxuefeng.com/wiki/896043488029600
https://www.w3cschool.cn/git/git-workflow.html
其实知道git是什么还有就是理解下面两图就可以了:
工作流程是在一个文件夹使用git init初始化,那么这个文件夹就会产生一个.git文件,而带有这个。git的目录就是工作区,也称为工作目录,而add添加则是把文件添加到版本库的暂存区,添加后图标显示效果会变为带有蓝色样式图示,而commit,提交则是真正得把其放入众多分支中得一个,才是真正得保存到分支,而没有提交具体分支,而是添加到暂存区那么这个文件或者文件夹对每个分支来说都是共享的!!!我后面有写一篇关于分支的博客,如果不理解,可以去看一下。
其实下面这个图也不难理解,本地仓库是一个轴心点,而本地仓库其实是以分支为轴心,我们在操作的时候都是操作单一分支,所以我们切换工作区,其实是切换在工作区上分支的具体内容,而add和commit上面已经说过不再重复,远程仓库和本地仓库就很好理解了,就是推送和克隆,克隆是复制仓库的行为,推送是将文件或者文件夹同步的操作,从远程拉取文件到具体分支下的工作区,会自动合并进分支,会出现冲突的可能,要自己手动调整解决。
同时想学习指令的方式以上的博文都可以学习到,同时以下的操作需要先自行安装好git和TortoiseGit(以下简称乌龟),当然还有梯子啦(加速器程序员必备,连接github太慢了)
示例:在桌面新建文件夹,自定义名字,着就用在repository了,然后再创建一个空文件夹rep1,进去rep1,使用安装好的git右键选择git gui here就有git的图形化界面,有创建,克隆,打开可选择,选创建选择rep1路径即可创建,即可创建一个本地仓库,也可以用命令行方式创建,在rep1文件夹里右键git bash here,然后再弹出命令行输入:
git init
会生成.git文件夹,属于隐蔽文件,看不到的话,在win10下选择查看,然后右上角三个复选框,选择最后一个显示隐藏文件,和开扩展名,就是后缀的位置复选框下面:
看到这样就成功创建本地工作目录即repo1啦,还可用一个被叫做乌龟git可视化工具创建,比起Git的gui文件的话,有汉化版。
使用乌龟添加文件进本地仓库
看到图标变了,表示添加成功,但其实并没有真正加入本地版本库,而是加到了git的暂存区。(这是git的特性)
注意:第一次使用乌龟git要重启一次,不然看不到变化。
点击rep1可看见:没提交即如下图
右键选择提交,必须写日志信息,才能提交,不然,提交按钮是灰色的
提交成功后可见效果:
右键移动到乌龟的快捷方式,可看见,版本库浏览器,点击可看本版本库情况。
先使用记事本或者编辑器,编辑内容,本次模拟写一行1111,保存默认也是在暂存区后,右键要提交的文件,选提交:
上述修改addfile.txt,步骤执行多一次上面的修改操作,这次加一行222,保存,提交。
然后右键addfile.txt移动乌龟快捷方式,再移动到显示日志,即可看见操作的日志信息。
1.先执行创建hello2.txt,加入一行hello2在txt中,然后添加暂存区,写日志再提交。
2.看见提交了文件图标变成了文件夹还有个绿勾的符号后,将其删除
3.还原:右键使用乌龟再移动还原功能
勾选还原文件
重复之前的显示日志查看操作。
因为其实其实它并没有真正的删除,它再本地版本库里还是存在的,现在的操作其实也是删的暂存区的,只有删除文件之后,再选提交操作就真的再本地版本库删除了。
1.右键删除文件
2.右键提交,输入日志,确定提交
3.右键移动乌龟再移到版本库浏览器查看,浏览本地仓库文件
确实没有了hello2.txt,如果没提交是看的到这个hello2.txt的
3.本地想保留但是本地版本仓库想删除怎么办?
1.一样操作新建hello3.txt添加,然后点提交指引,填日志,提交到本地版本。
2.右键hello3.txt,移动到乌龟指引,再移动到删除并保留本地即可。
本地是存在的,只是图标变了,变成带×的,右键提交,填日志后确定提交,然后版本库里已经没有了,我们可以浏览版本库看一下
将java工程加入到本地工作目录,复制黏贴进repo1,同样是乌龟=》添加,就进了暂存区,选提交,填日志,确定提交就进本地版本库了
1.我这里先把这个工程删了(如果你也是这样操作,记得提交删除,这样这个工程才是删了本地版本库里的这个工程),再重新加入工作目录repo1,效果如图
将其添加到暂存区:
我们点击进入工程可以用按住ctrl加鼠标左键选择即可选择idea和out文件夹,这两个文件夹就是我们不想加入本地版本库的文件:
然后将.gitignore文件也添加
然后右键提交工程
浏览版本库,查看操作是否成功
至此就成功加入一个java工程的指定文件了
1.首先要有github或者gitee账户,本次以github为例子:
1.先在本地仓库生成一个密钥对,使用git bush 命令行的形式
在工作目录右键,git bush here,在命令输入以下命令
ssh-keygen -t rsa
然后一路回车就可以,它会询问你输入key这些操作,这个根据实际需求,也可以直接回车键,然后就自动生成在c盘的用户下的.ssh目录下。
带.pub的是公钥,没带的是私钥,用编辑器打开公钥复制到github的ssh设置处
然后add
现在github会再要求输入个人密码确认身份,然后输入正确密码就可以了
注意在我们的仓库里,github已经帮我们写了创建了,拉取等的指令。
关闭一开始配对密钥对的命令行,在本地工作目录右键重新开一个git bush here命令行,输入连接指令远程仓库指令:(前面的一样的后面的根据实际,输入自己账户以及远程版本库名)
git remote add origin git@github.com:calmtho/repo1.git
没报错,即连接成功,再输入push指令
git push -u origin master
询问是否确定,输入,yes,等待同步即可。刷新github仓库页面,即可看见同步信息。(英文的大概意思是无法确定主机真实性,是否要继续连接,输入yes,才开始传输,流程见下图)
刷新github可见远程仓库以及同步:
1.同样还是新建一个远程仓库,这个使用名字为repo2:
再本地工作目录下,右键有同步的快捷指引,这是也是乌龟的。
由于刚刚已经有连接了,我们可以看见如下
点击管理
确定后关闭同步窗口,重新打开,还是右键同步,是空的,然后点击管理,效果如上图,之后选择网络,检查是否是ssh,同时路径是否正确:
接着修改我们的远端配置,如图,远端和url按照实际填,密钥选私钥
点三个点,选择密钥地址,然后选私钥
然后打开,回到远端界面,点击确认,回到同步界面选择推送,点击确认,开始推送
刚刚的配置没错,等待即可成功,我们看其日志可知,一样是走的push命令。
刷新repo12,同步成功,至此使用乌龟ssh连接同步远程仓库也成功了
创建工程后选择https,然后复制指令
3.同样的我们还是将本地的repo1推到远程github仓库上,不过是通过https的操作,我们再电脑的repo1工作目录空白处,右键选同步,还是进到同步的可视化界面,点击管理
还是配置远端连接
添加
然后确定
改为刚刚配置给https连接的origin1,然后推送,github和乌龟都会验证一次,都是通过验证账户密码是否正确,都对了才能成功同步
刷新github的repo3仓库,同步成功
至此本文的操作就到此顺利结束,gitee布局和操作与github非常相似,同时其是中文的,对国人非常友好,就不演示了。之后会更新有关分支以及从远程克隆项目到本地还有,idea集成的git使用!!