Skip to content

Latest commit

 

History

History
77 lines (41 loc) · 4.56 KB

File metadata and controls

77 lines (41 loc) · 4.56 KB

寒假作业提交期间出现的问题及解决方案

提交情况

我们规定2月25日12:00-20:00为提交周期,在评测时,我们会拉取每位同学20:00之前最后一次commit的代码进行测试。所以,在20:00之前没有提交的同学,会被视为没有完成寒假作业,关于寒假作业的最终评测结果,将在合适的时间进行公布。

关于提交文件

我们要求的提交内容包括三部分,源代码,.gitignore,README.md,除了上述内容之外的文件,不建议在提交到gitlab远程仓库中,有可能会影响评测,可以通过写好对应的.gitignore来处理本地仓库中其他文件,防止误push。

源代码

源代码统一放在src文件夹内提交,不允许有除package文件夹和源代码文件之外的文件,关于src文件夹内具体如何组织一个合适的package结构,本周末会有一个小的指南上线,敬请期待。

(TODO) 源代码组织形式说明

.gitignore

已经在git-guide中有说明,请查阅相关内容 https://github.com/OO-guide-2019/git-guide/blob/master/git%E9%A3%8E%E6%A0%BC%E6%8C%87%E5%8D%97.md

README.md

注:文件名是readme.md还是README.md其实都可以,一般习惯使用大写。(不要太纠结这些细节

readme是代码作者说明项目内容,方便他人阅读和使用文档的文档。具体内容根据代码内容自定义,需要使用makedown来书写。

关于隐藏文件

隐藏文件指所谓在命令行中使用ls命令看不到的文件,一般是一些配置型文件等,如.idea,.DS_Store,.vscode,建议不要提交到远程仓库,在本地可使用ls -a查看当前目录下所有文件(包括隐藏文件),在push前可使用git status查看是否误commit了类似的文件,如果发生这种情况请参见git-guide中的相关处理。

关于git使用

首先,请大家认真阅读git-guide,gitlab上的提示命令在没有了解其含义时,盲目照抄是可能会引发各种问题的

SSH和HTTP

一个gitlab repo可以使用SSH和HTTP两种方式来传输信息,选择任何一种都是可以的,互不影响,关于SSH的配置请参见git-guide,如果ssh配置还有问题请先询问成功配置的同学。

git clone

git clone项目时请在一个新的文件夹下,保证父目录路径中没有.git文件夹,即不要在一个git管理下的文件夹内在git clone另一个仓库,嵌套clone可能会造成submodule,容易出现一些奇怪的问题。

gitlab网页图形化界面

gitlab网页图形化界面也可以进行提交文件,删除文件等一系列操作,但是请大家注意以下两点:

  • 网页界面提交时尽量不要直接上传整个文件夹,有可能文件夹中带有不必要的文件,误上传到远程仓库
  • 在网页上做任何的修改之后,请立即在本地仓库路径下输入git pull,同步本地仓库和远程仓库,避免无谓的冲突

关于删除文件

如果发现已经把文件push到了远程仓库中,可以使用如下的命令行步骤来删除:

  • git rm --cache "文件名"
  • git commit -m "xxx"
  • git push

这里git rm使用--cache选项是保留本地文件

关于解决冲突

本来,我是不认为,简单的提交代码,会产生冲突的,但事实有点魔鬼,下面我来补充解决冲突的最基本的方法。

产生冲突的原因:gitlab网页上修改了repo,另一个git clone下来的本地repo做了修改,其他人修改了repo等等,最终导致本地仓库和远程仓库产生不一致,所以在本地直接git push会失败

解决方法如下:

  • git pull 尝试同步本地和远程仓库
  • 查看反馈信息,如果成功,再push即可,如果不成功,参见下文
  • git add,git commit等一系列操作,提交本地改动到本地仓库,这时再git pull,拉取远程仓库更新的内容,系统会自动进行merge,若自动merge成功,直接提及即可,若失败,需要手动检查冲突文件并修改,再重新commit和push。这时可以使用git status命令来查看是否冲突。

这时一个简易版的冲突解决方法,具体的代码演示本周内会更新在git-guide中,此外还有其他解决冲突的好方法,敬请接待。

关于git add

一定,不要,想当然地,暴力无脑git add .git add -Agit add --all ,你这么做的前提是你对文件夹有哪些文件非常了解,这样的操作很容易误添加文件,一般的做法是,写好.gitignore后再git add,或者手动一个一个提交需要提交的文件。