# Functions
NewGit return Git https://docs.github.com/cn/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token.
# Structs
Git 封装 go-git go-git 是 git 的子集,很多功能并不支持,查看不同:https://github.com/go-git/go-git/blob/master/COMPATIBILITY.md 比如 pull 只支持 fast-forward,不支持 stash,所以在封装的时候回做一些取舍: merge 与 解决冲突是十分复杂的操作,hollow 无法实现它们,所以在同步的时候采取以下策略: - pull 时 如果传递 force=true,如果遇到 non-fast-forward,则会将远端文件全部下载下来,cp 到本地,相同文件保留最新的一个。尽量将降低影响。 - push:为了避免 push 的冲突,每次 push 都是 force 的,为了避免远端文件丢失,每次 push 之前都会 pull 一次。 non-fast-forward: 当本地有提交,pull 都会报错 non-fast-forward。.