更新日志:
[2021-04-09] 修复5、6中的一些描述错误
[2019-07-13] 修改commit 注释的 Git 命令
[2020-11-23] 修改git pull 和git push 中"远程分支:本地分支"的错误顺序
1、设置本地用户和邮箱
# 全局用户名和邮箱
git config --global user.name "your_username"
git config --global user.email "nickname@xxx.xxx"
2、显示所有配置
git config --list
3、生成公钥
# -t:指定密钥类型
# RSA 和 DSA 是两种类型的密钥
# -C:后边添加的是注释内容,这里用了邮箱
ssh-keygen -t rsa -C 'youremail@xxx.xxx'
4、获取密钥
cat ~/.ssh/id_rsa.pub
或者用文本编辑器直接打开
~/.ssh/id_rsa.pub
如下图:
将该公钥添加到你的远程托管平台(如 Github)相应的设置里。
5、关联远程库
新建一个文件夹 tom,用来存放项目相关的代码
# short_name 是可以自己定义的名字,用来代表远程库
# your_remote_reop_url 是远程库的地址
cd tom
git remote add short_name your_remote_reop_url
# 从远程库拉一份代码到本地
# 公式:git pull <远程主机名> <远程分支名>:<本地分支名>
git pull short_name r_master:l_master
6、提交本地更改并推送到远程库
对 tom 内的文件作出更改后
## 把工作时的所有变化提交到暂存区
git add .
# 将缓存区内容添加到本地仓库
git commit -m'some comment'
# 将本地版本库推送到远程服务器
# 公式: git push <远程主机名> <远程分支名>:<本地分支名>
# 加上-u,下次可直接使用git push进行代码推送
git push -u short_name r_master:l_master
如果当前分支和多个主机之间存在追踪关系,可以使用这个命令(-u)来设置一个默认的主机
7、查看当前库的远程分支
git remote -v
8、关联到其他远程库,只用作 push 备份
# short_name 必须是已经用 git remote add 关联过的
# other_remote_repo_url:push的备份库,只能push,不能pull
git remote set-url --add short_name other_remote_repo_url
9、分支的操作
1) 查看所有分支
# 列出所有分支名称,* 号所在的名称为当前分支
git branch
2)在当前分支基础上新建分支,并切换到新分支
git branch my_new_branch
git checkout my_new_branch
# 等价于
git branch -b my_new_branch
3)提交本地改动
# 提交所有变化到暂存区
git add .
# 将变化从暂存区提交到本地库
git commit -m'some comment'
4) 重写 commit 注释
# 该命令会打开 commit 的注释文件,改动里边相关内容保存后退出即可
# 然后,commit 的注释就修改好了
git commit --amend
5)更新远程分支
# 用本地库的 local_new_branch 分支更新远程库 short_name(所指向的库)的 remote_branch 分支
# 公式:git push <远程主机名> <本地分支名>:<远程分支名>
git push short_name local_new_branch:remote_branch
10、注意以下语句的区别
# 以下语句均为 追踪本地变化并提交到本地仓库
# 不同点见具体注释
# 追踪所有文件改动,包括新增加的文件
git add . && git commit -m'some desc'
# 追踪已经追踪的文件,不追踪新加的文件
git commit -am 'some desc'
11、删除分支
1)删除远程分支
# origin:远程主机别名, remote_branch_name: 远程分支名称
git push origin --delete remote_branch_name
2)删除本地分支
# origin:远程主机别名, remote_branch_name: 远程分支名称
git branch -d local_branch_name
12、一个分支强制覆盖另一个分支
1) test 下的 new_1分支覆盖
# 主分支 master,新分支 new_1, 主机名 test
git reset --hard test/new_1
2)强制推送 master 分支到远程分支
git push test master --force
The end.