11 Home
suneshone edited this page 2023-12-12 10:23:43 +08:00

这是我第一次使用版本控制,我要记录一下自己的使用过程。

问题清单

如何把本地的仓库推送到远程仓库?

首先运行git remote add <shortname> <url>添加远程仓库

git remote add origin git@git.suneshone.com:suneshone/obscuredSubtitles.git

可以通过运行 git remote 命令列出你指定的每一个远程服务器的简写,你也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。

然后运行 git push <remote> <branch>将本地仓库推送到远程仓库

比如将 master 分支推送到 origin 服务器

git push origin master

不过需要在远程仓库的服务器上添加ssh公钥。生成命令 ssh-keygen -o

如何忽略不需要版本控制的文件?

GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表, 你可以在https://github.com/github/gitignore 找到它。

在最简单的情况下,一个仓库可能只根目录下有一个 .gitignore 文件,它递归地应用到整个仓库中。 然而,子目录下也可以有额外的 .gitignore 文件。子目录中的 .gitignore文件中的规则只作用于它所在的目录中。

如何删除文件?

可以用 git rm 命令完成此项工作

如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f (译注:即 force 的首字母)。 这是一种安全特性,用于防止误删尚未添加到快照的数据,这样的数据不能被 Git 恢复。

如何只删除git库中的文件?

你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件,不小 心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。 为达到这一目 的,使用 --cached 选项

git rm --cached README

git安装

  1. 下载git,阅读书籍

常用指令

  • git init 将尚未进行版本控制的本地目录转换为 Git 仓库

  • git clone <url> 克隆现有的仓库

  • git log 查看提交历史

  • git status 查看哪些文件处于什么状态

撤销操作

你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

最终你只会有一个提交——第二次提交将代替第一次提交的结果。

当你在修补最后的提交时,与其说是修复旧提交,倒不如说是完全用一个 新的提交 替换旧的提交, 理解这一点非常重要。从效果上来说,就像是旧有的提交从未存在过一样,它并不会出现在仓库的历史中。修补提交最明显的价值是可以稍微改进你最后的提交,而不会让“啊,忘了添加一个文件”或者 “小修补,修正笔误”这种提交信息弄乱你的仓库历史。

git reset HEAD <file> 取消暂存的文件。