git对不起我是个猴子……
好菜啊……
这是一篇不正经的记录
推荐一篇教程,猴子都能懂的git入门:https://backlog.com/git-tutorial/cn/intro/intro1_1.html
太惨了什么每次初始化我全都忘记了这次认真记一下
答辩太委屈了提起来就超级委屈超想哭
常用命令行
$ git init
$ git remote add origin <url>
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
$ git pull //download code
$ git add .
$ git commit -m "messge"
$ git pull
$ git push -u origin master
git关于push到远程数据库失败的解决方案
参考链接:https://www.jianshu.com/p/ea6ec80ad5f2
整理一个报错信息,命令如下:
$ git remote add origin https://[your_space_id].backlogtool.com/git/[your_project_key]/tutorial.git
报错其中一部分长这样
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
问题(Non-fast-forward)的出现原因是: git仓库中已有一部分代码, 它不允许你直接把你的代码覆盖上去。于是有2个选择方式:
-
强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容:
git push -f
-
先把git的东西fetch到你本地然后merge后再push
- $ git fetch
- $ git merge
这两句命令等价于
$ git pull
可是, 有时候还会出现问题:
上面出现的 [branch “master”]是需要明确(.git/config)如下的内容
[branch “master”]
remote = origin
merge = refs/heads/master
这等于告诉git两件事:
- 当你处于master branch, 默认的remote就是origin。
- 当你在master branch上使用git pull时,没有指定remote和branch,那么git就会采用默认的remote(也就是origin)来merge在master branch上所有的改变
如果不想或者不会编辑config文件的话,可以在输入如下命令行:
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
之后再重新git pull下。
最后git push即可。
删除本地git仓库
在本地仓库的目录下调用命令行删除根目录下的.git文件夹
find . -name “.git” | xargs rm -Rf
删不干净的手动删掉。
推荐
推荐一个网站,练习git分支的,很简洁很清晰的一个网站,用了就懂我为什么这么说了。上站:https://learngitbranching.js.org/
附上我的通关图~
有点感慨,这个网站还是一次组会师兄推荐的。最开始写这篇的时候我还在学校,几个月过去已经不是原来的样子了。这几天就做不下去项目的时候就玩这个网站静静心,老年人记忆不好这么久才过关。真的很感慨啊,师兄当初包括现在一直帮了我很多,可以说对现在的我也有很大的影响,很尊敬很尊敬的师兄了。有一句很俗的话,就是那个初见踏光而来,照亮自己整个世界的人。不管怎么说,就是不要放弃,努力让自己去变得更好。
建立本地仓库
推荐一个写的贼鸡儿好的一篇文章,生动活泼通俗易懂。
参考文档:https://www.cnblogs.com/joshua317/articles/4606328.html
跟着做就好了,基本没什么问题。
但是遇到了一个bug:我在提交修改的时候,出现换行符格式的警告。
LF和CRLF
参考:https://www.cnblogs.com/sminocence/p/9357209.html
LF和CRLFF都是换行符,在各操作系统下,换行符是不一样的,Linux/UNIX下是LF,而Windows下是CRLF,早期的MAC OS是CR,后来的OS X在更换内核后和UNIX一样也是LF.
Git 由大名鼎鼎的 Linus 开发,最初只可运行于 *nix 系统,因此推荐只将 UNIX 风格的换行符保存入库。但它也考虑到了跨平台协作的场景,并且提供了一个“换行符自动转换”功能。
安装好 GitHub 的 Windows 客户端之后,这个功能默认处于“自动模式”。
当你在签出文件时,Git 试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。
所以Git在拉取代码的时候,git会自动将代码之中与你当前系统不同的换行方式自动转换成当前系统的换行方式。
这样一来在提交代码的时候,git会认为你未修改内容的文件也认为是修改过的,然后提示你warning: LF will be replaced by CRLF这样的信息。
解决方案
很简单,因为我现在是win系统,简单粗暴一句命令行git config --global core.autocrlf true
。 在检出代码时,换行会被转换成回车和换行。