git常用命令总结

github官网给出的教程挺通俗易懂的,移步[https://docs.github.com/cn/get-started/using-git]

本地配置ssh和github,参考官方文档[https://docs.github.com/cn/authentication/connecting-to-github-with-ssh/about-ssh]

远程仓库使用

在本地设置推送到远程仓库的用户名:[https://docs.github.com/cn/get-started/getting-started-with-git/setting-your-username-in-git]

1
git config --global user.name "your name"

远程URL是 Git 一种指示“您的代码存储位置”的绝佳方式,您只能推送到两类 URL 地址:

  • HTTPS URL,如 https://github.com/user/repo.git
  • SSH URL,如 git@github.com:user/repo.git

Git 将远程 URL 与名称相关联,您的默认远程通常名为 origin

创建远程仓库,并将其命名为master

1
git remote add master <REMOTE_URL> 

如果后面想更改url,使用

1
git remote set-url origin <new_url>

查看远程仓库设置:

1
git remote -v

重命名远程仓库

1
git remote rename origin destination

删除远程仓库

1
git remote rm destination

推送提交至远程仓库,

1
git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME> 

拉取某远程仓库距离上一次抓取之后的工作:

1
2
git fetch <remote_name>
必须注意 git fetch 命令只会将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

显示某远程仓库的信息

1
git remote show <remote_name>

忽略文件

见文档

1
touch .gitignore #该命令在项目根目录会创建一个.gitignore文件,然后往该文件中填东西

如果有些我们不需要跟踪的文件已经提交到了暂存区,那么使用下面的命令来删除暂存区的该文件,再将该文件写入.gitignore文件

1
2
git rm --cached FILENAME 该命令直接将暂存区的那个版本删除了
或者 git restore --staged <file> 该命令会用暂存区的代码覆盖掉工作区的代码

在自己的project中添加别人的project

https://devconnected.com/how-to-add-and-update-git-submodules/

1
2
3
4
5
6
7
git submodule add <remote_url> <destination_folder>

git commit -m "Added the submodule to the project."

git push

git submodule update --init --recursive # 如果想要拉取别人仓库里的submodule到本地

分支

创建分支:当执行git init时,默认创建名字是master的分支

1
git branch <branch_name>

切换到某分支:

1
git checkout <branch_name>

分支切换会改变你工作目录中的文件。在切换分支时,一定要注意你工作目录里的文件会被改变。 如果是切换到一个较旧的分支,你的工作目录会恢复到该分支最后一次提交时的样子。 如果 Git 不能干净利落地完成这个任务,它将禁止切换分支。

上面两条命令可以使用一条命令搞定:

1
git checkout -b <branch_name>

在一条分支上,比如hotfix修改一些文件提交后,需要回到master分支并将hotfix上的分支的修改合并到master

1
git merge hotfix

这是一个Fast-forward。合并完之后master会和hotfix指向同一个位置,这时可以删除hotfix这个分支:git branch -d hotfix