git的使用(三)

SSH 公钥的配置

许多 Git 服务器都使用 SSH 公钥进行认证,用户可以生成一份然后提供给服务器,这样就无需在每次访问时都提供用户名或密码。

检查现有 SSH 密钥

默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下,根据该目录是否包含 id_dsa.pub(公钥) 或 id_rsa(私钥) 文件来确定是否已拥有密钥

1
2
3
$ cd ~/.ssh
$ ls
id_rsa id_rsa.pub known_hosts

生成 SSH 公钥

如果.ssh 目录或者密钥文件,则需要通过运行 ssh-keygen 程序(系统自带的软件包)来创建它们。创建时会要求输入使用密钥时输入口令,将其留空即可。

1
$ ssh-keygen -o

测试您的SSH连接

1
2
$ ssh -T git@github.com  或者 ssh -T git@gitee.com
Hi czmCWH! You've successfully authenticated, but GitHub does not provide shell access.

学习博客:

GitHub 的 SSH 密钥指南
在一台机器上配置多个Git账号

git命令速查

操作本地仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 暂存文件
$ git add <fileName> # 暂存某个文件
$ git add . # 暂存所有更改文件
$ git add -i # 交互式暂存

# 撤销暂存
$ git reset HEAD 2.text # 只是撤销暂存
$ git restore 2.text # 撤销暂存,暂存覆盖本地修改
$ git restore --staged 4.text # 撤销未跟踪的新文件被暂存

# 暂存区提交到本地仓库
$ git commit -m "提交说明" # 提交暂存区文件到git仓库
$ git commit -a -m "提交说明" # 把所有已经跟踪过的文件暂存起来一并提交

# 重新提交 (提交漏掉的文件;或者更改上次提交的提交信息)
$ git commit --amend -m "重新提交"

# 取消工工作区文件的修改
$ git checkout -- <file>

# 删除已跟踪文件
$ git rm <fileName>
$ git rm -f <fileName> # 若文件被修改未提交,强制删除

# 修改文件名称
$ git mv file_from file_to

# 打标签
$ git tag -a v1.0.0 -m "initial project version"
$ git tag -a v1.1.1 dc9c895262d2b1e5c6f304a6a2331fb9c30cf292 -m "后期打标签1"
# 同步标签到远程服务器
$ git push learnGit v1.0.0
$ git push learnGit --tags # 同步所有标签

# 删除本地仓库标签
$ git tag -d v1.1.1
# 删除远程仓库标签
$ git push origin --delete <tagname>

# 检出标签为一个分支,便于查看该标签的内容
$ git checkout -b <newbranchname> <tag>

# 新建分支
$ git branch <newbranchname>
# 切换分支
$ git checkout <newbranchname>
# 新建并切换分支
$ git checkout -b <newbranchname>
# 合并分支
$ git merge <branchname>
# 删除分支
$ git branch -d <branchname>

远程仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 添加远程仓库
$ git clone [remote-repository] [local-repository]
$ git remote add <shortname> <url> # 给本地库添加远程仓库

# 推送本地分支到远程仓库
$ git push <remote> <branch>

# 修改远程仓库的简写
$ git remote rename <remote> <new remote>

# 移除远程仓库
$ git remote remove <remote>

# 跟踪分支
$ git checkout -b <branch> <remote>/<branch> # 可以设置本地分支与远程分支不同名
$ git checkout --track <remote>/<branch> # 本地分支与远程分支同名

# 给本地分支设置跟踪的上游分支
$ git branch -u(或者 --set-upstream-to) <remote>/<branch>

# 删除远程分支
$ git push <remote> --delete <branch>

本地仓库和远程仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
# fetch抓取,从远程仓库中获得本地仓库没有的数据
$ git fetch <remote>
# 抓取所有的远程仓库
$ git fetch --all

# pull拉取,拉取跟踪分支的最新代码
$ git pull <remote> <branch>

# push推送,提交跟踪分支到远程仓库
git push <remote> <branch>

# 更新本地分支中存储的远程分支引用列表
git remote update <remote> --prune

查询操作

1、查看已暂存和未暂存的修改

1
2
$ git status
$ git status -s # 或者 --short 简洁的方式查看更改

2、查看提交历史

1
2
3
4
5
$ git log       # 会按时间先后顺序列出所有的提交
$ git log -p # 或 --patch ,它会显示每次提交所引入的差异
$ git log -p -2 # 只显示最近的两次提交
$ git log --stat -2 # 查看每次提交的简略统计信息
$ git log --pretty=oneline # 简略浏览大量的提交

3、查看远程仓库

1
2
3
$ git remote        # 查看所有远程仓库的简写
$ git remote -v # 显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git remote show <remote> # 查看更多信息

4、查询本地仓库标签

1
2
3
4
$ git tag
$ git tag -l
$ git tag -l "v1.*.*"
$ git tag show v1.0.0 # 查看标签信息和与之对应的提交信息

5、查看本地分支

1
2
3
4
5
6
7
$ git branch -a     # 所有的分支(包括本地存储的远程分支引用)
$ git branch -r # 查看本地存储的远程分支引用
$ git branch -vv # 查看本地分支分支详信息

$ git branch -v # 查看本地每一个分支的最后一次提交
$ git branch --no-merged # 尚未合并到当前分支的分支
$ git branch --merged # 已合并到当前分支的分支

6、查看远程分支

1
2
3
4
5
# 查看远程引用的完整列表
$ git ls-remote <remote>

# 获得远程分支的更多信息
$ git remote show <remote>

iOS .gitignore 配置文件

文章作者: Czm
文章链接: http://yoursite.com/2020/06/18/git%E7%9A%84%E4%BD%BF%E7%94%A8-%E4%B8%89/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Czm