1、初始化Git,如果没有初始化Git,那么就不能在该仓库内运行任何其他的Git命令
git init
2、远程仓库
① 如果你在使用GitHub,而且正在讲代码推送到在线存储的GitHub仓库中,那么你正在使用的就是远程仓库;
② 该远程仓库的默认名称(也成为别名)为origin;
③ 如果你已经从GitHub复制了一个项目,它就有了一个origin;
④ 使用命令 git remote -v 查看该origin,该命令将列出远程仓库的URL。
3、关联GitHub仓库
① 如果你初始化了自己的Git仓库,并希望将其与GitHub仓库相关联,则必须在GitHub上创建一个;
② 复制新仓库提供的URL,并使用 git remote add origin <URL> 命令,这里使用GitHub提供的URL替换 <URL> ;
③ 这样,你就可以添加、提交和推送更改到你的远程仓库了。
4、更改远程仓库 set-url
① 如果你从其他人那里复制了一个仓库,并希望将远程仓库从 原始所有者 更改为 你自己的GitHub账户 ;
② 除了改用 set-url 来更改远程仓库外,流程与 git remote add origin 相同。
git remote -vgit remote add origingit remote set-url origin
5、复制仓库 git-clone <URL>
① 如果你克隆了一个属于别人的仓库,你将无法推送到 GitHub,除非你使用了上面的命令改变了 origin。
git clone
6、分支
① 列出本地机器上的所有分支。
git branch
② 创建分支
git branch
③ 切换分支
git checkout
④ 创建分支并切换
git checkout -b
⑤ 合并分支
a. 如果你在develop分支上进行了一系列更改后想将该分支合并回主分支(master);
b.使用 git merge <branch> 命令:
i. 你需要先检出 (checkout) 主分支
ii. 然后运行 git merge develop 将 develop 合并到主分支中。
⑥ 更新分支
a. 如果GitHub的仓库上已经更新了,但你的本地却没有做相应的更改,你可以使用 git pull origin <branch> 命令从远程分支中拉取最新的更改。
git pull origin
6、查看更改及正在被跟踪的文件: git status
如果您好奇地想看到哪些文件已经被更改以及哪些内存正在被跟踪,可以使用 git status 命令。如果要查看每个文件的更改,可以使用 git diff 来查看每个文件中更改的行。
git statusgit diff --stat
7、查看提交的历史记录
git log
8、回退到某个版本
① 你的提交会附带消息和一个哈希值,哈希值是一串包含数字和字母的随机序列,一个哈希值实例如下: c3d882aa1aa4e3d5f18b3890132670fbeac912f7 。
② 如果你希望及时回退并从之前的提交中检出(checkout)你的应用程序,则可以使用该哈希作为分支名直接执行此操作。这将使你的应用程序与当前版本分离。
git checkout c3d882aa1aa4e3d5f18b3890132670fbeac912f7
然后,如果你在那个历史分支中做了更改,并且想要再次推送,你必须使用强制推送。
③ 强制推送
注意:强制推送是危险的,只有在绝对必要的时候才能执行它。它将覆盖你的应用程序的历史记录,你将失去之后版本的任何信息。
git push -f origin master
9、重新引用:多个提交合并到一个提交中 git rebase
在其他时候,将所有内容保留在一个提交中是不现实的。也行你想在尝试有潜在风险的操作之前保存当前进度,或者也许你犯了一个错误,但希望在你的版本历史中避免尴尬地留着这个错误。对此,我们有 git rebase
。
① 假设你在本地历史记录上有 4 个提交(没有推送到 GitHub),你要回退这是个提交。你的提交记录看起来很乱很拖拉。这时你可以使用 rebase 将所有这些提交合并到一个简单的提交中。
git rebase -i HEAD~4
上面的命令会打开你计算机的默认编辑器(默认为 Vim,除非你将默认修改为其他的),提供了几个你准备如何修改你的提交的选项。它看起来就像下面的代码:
1. pick 130deo9 oldest commit message2. pick 4209fei second oldest commit message3. pick 4390gne third oldest commit message4. pick bmo0dne newest commit message
为了合并这些提交,我们需要将 pick
选项修改为 fixup
(如代码下面的文档所示),以将该提交合并并丢弃该提交消息。请注意,在 Vim 中,你需要按下 a
或 i
才能编辑文本,要保存退出,你需要按下 Esc
键,然后按 shift + z + z
。不要问我为什么,它就是这样。
1. pick 130deo9 oldest commit message2. fixup 4209fei second oldest commit message3. fixup 4390gne third oldest commit message4. fixup bmo0dne newest commit message
② 这将把你的所有提交合并到一个提交中,提交消息为 oldset commit message。
③ 下一步是重命名你的提交消息。这完全是一个建议的操作,但只要你一直遵循一致的模式,都可以做得很好。
为了更改提交消息,请使用 amend 标志。
这也会打开 Vim,文本编辑和保存规则如上所示。为了给出一个良好的提交消息的例子,下面是遵循该指南中规则的提交消息:
1. feat: add stripe checkout button to payments page2. 3. - add stripe checkout button4. - write tests for checkout
保持指南中列出的类型type的一个优点是它使编写更改日志更加容易。你还可以在页脚footer(再次,在指南中规定的)中包含信息来引用问题issue。
注意:如果你正在协作一个项目,并将代码推送到了 GitHub,你应该避免重新引用(rebase
)并压缩(squash
)你的提交。如果你开始在人们的眼皮子底下更改版本历史,那么你可能会遇到难以追踪的错误,从而给每个人都带来麻烦。