1.删除文件
在git开发中,正常删除文件是通过git rm filename
来删除的。不过有时候直接手动删除了,还需要在git中再删除一次,有两种方法
- git rm filename # 手动删除了单个文件后可以用这个方法
- git add -A . # 手动删除了很多文件后可以用这个方法
2. git add撤销
- git status看下add中的文件
- git reset HEAD 撤销上一次所有add了的文件
- git reset HEAD xxx/xxx.py 对具体的某个文件进行撤销
3. git commit撤销
如果add并commit后,想撤销
- git log # 查看log信息
-
git reset commit_id 恢复到要撤销的commit_id再前一次那个commit_id,如下图,若要撤销1,需要恢复到2
image.png
4. 强制覆盖已有改动
- 开发时,对于本地的项目中修改不做保存操作(或代码改崩),可以用到Git pull的强制覆盖,具体代码如下:
git fetch --all
git reset --hard origin/master
git pull //可以省略
git fetch origin service # 拉取指定分支
git reset --hard origin/service
git fetch 指令是下载远程仓库最新内容,不做合并
git reset 指令把HEAD指向master最新版本
5. 创建独立分支
项目包括算法开发和部署两部分,开发部分经常改动,部署代码(包括模型推理和flask相关代码)一般不变。这种情况下可以创建一个独立的service分支,执行命令:
git checkout --orphan service
会提示:Switched to a new branch 'service'。
现在就在service分支下了,可以删除不需要的文件,保留服务代码,最后提交到远端的service分支
git push origin service
6. git lfs
git clone已经兼容git lfs clone,因此如果已经安装了git lfs,在clone一个包括lfs文件的仓库时,直接试用git clone repo-name
即可。但如果不想clone lfs文件,可以使用
GIT_LFS_SKIP_SMUDGE=1 git clone repo-name