发表于: 2018-06-13 01:46:50
1 549
今天完成的:
了解了用Git链接远程库GitHub,怎么Push以及Clone文件,了解了一些Linux的基本指令。
本地Push到远程库:
Step1:创建SSH Key。 启动 Git Bash --> 输入 ssh-keygen -t rsa -C"我的邮箱"。此时用户目录下会出现一个.ssh目录,有id_rsa和id_rsa.pub两个文件,其中第一个是私钥,第二个是公钥。
Step2:登录GitHub --> Account Setting --> SSH Keys --> Add SSH Key,将公钥复制粘贴至文本框即可。
Step3:在GitHub上新建一个库用来和本地库远程同步。
Step4:在本地的testgit仓库下运行命令:$ git remote add origin git@github.com:Hanxiaoran906/testgit.git之后远程库的名字就是origin。
Step5:把本地库的所有内容推送到远程库:
$ git push -u origin master (第一次需要加 -u ,将本地master分支推送到远程新的master分支,并把本地和远程的master分支关联起来)
$ git push origin master (之后本地commit之后就可以直接push到远程库)
Clone远程库:
$ git clone git@github.com:Hanxiaoran906/gitskills.git 即可把gitskills远程库clone到本地。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
关于分支:用来多人同步操作时,在未完成的情况下不影响主分支;完成任务后再将自己的分支与master合并。
分支的操作:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
Tip:合并分支的时候要先切换到master分支再进行合并,否则信息不能同步;在小分支里的时候不能删除当前分支,需要先切换到master再进行删除;未经合并的分支不能轻易删除,会有提示,若确定不进行合并,可输入 $ git branch -D <name> 进行删除。
分支冲突的问题:
当在<name>分支下修改并提交之后,切回master分支再进行修改并提交,之后将<name>分支合并到master分支的时候会发生冲突。
解决办法:把Git合并失败的文件手动编辑为我们希望的内容,再提交。之后就可以删除<name>分支了。
Tip: 可以通过 $ git log --graph 命令看到分支合并图。(git log --graph --pretty=oneline --abbrev-commit 可以看到简化版)
分支管理策略(即分支的重要性):一般master分支只用来发布新版本,在开发中,我们都是在dev上进行工作。每个人都有自己的分支,然后将成果提交到dev分支上,版本发布时再提交到master分支。
然而在合并分支的时候,Git会尽可能的使用Fast forward模式,这种模式在删除分支后会丢掉分支信息。如果我们强制禁用Fast forward,Git就会在merge的时候生成一个新的commit,这样从分支历史就可以看到分支信息。
在merge时加 --no-ff 参数即可: $ git merge --no-ff -m"注释信息" <name>
关于Linux的基本指令:
显示日期:date;
显示日历:cal;
计算器程序:bc;
Tab键---具有“命令补全”不“档案补齐”的功能;
Ctrl+c键---让当前的程序停掉;
Ctrl+d键---通常代表着:键盘输入结束的意思;另外,他也可以用来取代exit;
数据同步写入磁盘:sync;在内存中尚未保存的内容就会被保存到磁盘中,在关机或重启前可执行。
关机指令:shutdown;
-t sec:过多少秒关机;
-k :不是真的关机,只是发出警告讯息;
-r :在将系统的服务停掉之后重新启动(常用);
-h :将系统的服务停掉之后,立即关机(常用);
-f :关机并开机之后,强制略过fsck的磁盘检查;
-F :系统重新启动之后,强制进行fsck的磁盘检查;
-c :取消已经在进行的shutdown指令内容。
(时间必须要加!)
变换目录:cd;(cd ~file:表示去到file文件夹;cd ~:表示回到初始目录;cd:也表示回到初始目录;cd ..:表示去到上层(父)目录;cd -:表示去到上一个(刚刚)去的目录;cd xx1/xx2/xx3:绝对路径的去到xx3目录;cd ../xx4:相对路径的去到xx1/xx2/xx4)
显示当前路径:pwd;
建立新目录:mkdir;(mkdir <file name>;建立多层目录:mkdir -p xx1/xx2/xx3;)
删除空目录:rmdir;
档案与目录的显示:ls;
移除档案或目录:rm;(rm <file name>)
由第一行开始显示档案内容:cat;(cat <file name>)(加上属性 -n 会显示行号)
由最后一行开始显示档案内容: tac;(cat倒着写2333)
关于在配置SVN的时候出现了一些问题:
在建库的时候,因为考虑到按照例子来的话每看一个教程就会有一个新的库要建(现在我GitHub上都有3个库了 T_T,虽然有一个是空的没什么用),所以我就跳过建库步骤想直接关联本地版本库(E:/testgit)。然后.......
然而教程里新建的库(myRepositories)在列表里是这样:
之后在Security设置步骤也出现了错误:
emmmm.....
除了关于SVN的任务部分之外,别的基本上就没什么问题了。
明天计划的事情:
1.把上面SVN的问题解决掉,提交任务2;
2.开始任务3,学习PS切图、自适应相关知识。
遇到的问题:
在学习Git和GitHub相关知识的时候,有些操作(顺序)稍有疑问,通过自己的实践基本解决,也都写在了上面的完成情况之中了。
还有就是SVN的问题。(嗯,因为SVN列表那里有问题,我就想把列表清空重新试一下,emmm,结果把本地文件给直接删掉了,瞬间懵逼,还好之前的项目push到了GitHub,给clone了回来,不过有一两个文件夹貌似没什么用来着没push也想不起来是什么了.......)
看Git教程的时候,里面也说了SVN的一些不足和Git的强大之处,这两个都作为版本管理软件,直接学更加好用的Git应该就可以了,为什么还要求学SVN的操作呢?
今天的收获:
更进一步的学习了Git,知道了Git的强大之处。
学会了如何将本地版本库的文件如何push到项目库里,及clone到本地。
成功的将(九宫格)项目放到了自己的云服务器上。
评论