Git操作速查
舍弃本地修改
未add时
git checkout .
add后,commit前
git reset HEAD .
回到1,继续git checkout .
commit后
1
2git log
git reset --hard commitid
处理git push文件过大的办法
在进行git push的时候,遇到了报错HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
我觉得可能是因为保存rnn模型的文件夹比较大,就在.gitignore加上了那个目录。(让.gitignore生效的办法:git 修改.gitignore后生效),然后再push还是不行,我不确定是不是因为之前commit的还在。
这个错误本身搜到的解决方案一般是提高文件传输限制之类的,但是我是希望之前的较大的那个commit不要被push上去。于是我搜到了一个解决方案是用git reset: git push 推送大文件失败的处理办法。
也就是说,下次遇到类似的问题,先用git log查commitid,然后用git reset撤销commit,之后修改.gitignore再使其生效,最后commit&push即可。
另外,reset也可以用于强制更新本地版本,只需在git pull前运行
git reset --hard
即可
保持本地仓库和远程同步
远程仓库,个人fork,和本地仓库的逻辑关系如下图:
当远程仓库更新时,需要先把更新拉到本地,合并好后再push到个人fork的仓库中。具体流程为:
添加远程仓库到本地remote分支
1
git remote add upstream http://xxxxxx.git
查看当前仓库的远程分支
1
git remote -v
fetch 远程分支
1
git fetch upstream
合并 fetch 的分支到本地(此处应该和develop保持一致,故merge develop分支)
1
git merge upstream/develop
推送本地到远程仓库(自己fork的仓库)
1
git push
更改远程仓库地址
对于原本就是clone的repo,直接添加链接会报错,需要加一句git remote rm orgin
1 | cd existing_folder |
提PR
- fork repo A/code 到自己的 GitHub,称之为 B/code
- clone B/code 到本地
- 增加 A/code 作为本地的远程 upstream:
1
git remote add upstream https://github.com/A/code.git
- 新建工作分支
1
git checkout -b my-dev
- 进行 add,commit,push 到自己的远程分支 B/code
1
git push --set-upstream origin my-dev
- 在 GitHub 上发起 Pull Request,会有分支选择
这里不清楚为什么要添加 upstream 根本没用到,可能为了之后拉代码方便
让.gitignore生效
1 | git rm -r --cached . |