github推送本地仓储到远程
转自:https://zhuanlan.zhihu.com/p/136355306
1.流程
如果是从github上下载的别人的仓储,想推到自己的下面,那肯定是已经关联了远程仓储了,查看关联:
git remote -vv #查看已关联的远程仓储
git remote rm origin #删除已关联的远程仓储
# 如果还没有对应的github上的仓储,需要先手动创建一个,然后获取其.git地址
git remote add origin git@github.com:yourname/cmake-demo.git #关联刚创建的远程仓储,私密仓储也可以推
提前要把根据GitHub邮箱生成的ssh公钥存到GitHub上。拉和推代码:
git push origin master/main #推到远程
git pull origin master/main #拉远端
生成密码的ssh命令如下:
ssh-keygen -t rsa -C "email" # email为你在github上注册的邮箱(只是一个标记参数而已)
2. .gitignore文件
转自:https://www.freecodecamp.org/chinese/news/gitignore-file-how-to-ignore-files-and-folders-in-git/
通常,一个 .gitignore 文件会被放在仓库的根目录下。
/text.txt #忽略位于根目录下的 text.txt 文件 /test/text.txt #忽略一个位于根目录下的 test 目录中的 text.txt 文件 test/text.txt #同上 text.txt #忽略任何 text.txt 文件,不需要提供特定文件的完整路径。这种模式将忽略位于项目中任何地方的具有该特定名称的所有文件。 test/ #忽略整个目录及其所有内容,你需要包括目录的名称,并在最后加上斜线。这个命令将忽略位于你的项目中任何地方的名为 test 的目录(包括目录中的其他文件和其他子目录)。 test #匹配任何名字带有 test 的文件和目录 img* #忽略所有名字以 img 开头的文件和目录。 *.md #忽略位于项目中任何地方的以 .md 文件扩展名结尾的 markdown 文件 # 忽略所有 .md 文件 .md # 不忽略 README.md 文件 !README.md # 忽略所有名字带有 test 的目录 test/ # 试图在一个被忽略的目录内排除一个文件是行不通的 !test/example.md
3.回退已合并到master的版本
先本地 git reset --soft HEAD~1,这样上次提交的代码还在暂存区,不会丢。可以先stash起来。
然后git push -f (要强制push)。之后可以将stash的代码pop了,然后再commit提交到远程。