Git命令 含GPG签名

发布时间 2023-08-09 19:47:57作者: 砖猿

Git

免密登录,之后最多再登录一次

git config --global credential.helper store

[credential]
helper = store

学习资源连接:

Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

Pro Git(中文版) (gitee.com)

深入浅出Git教程(转载) - 小奔的早晨 - 博客园 (cnblogs.com)

GIT 基础命令

#系统配置在/etc/gitconfig
$ git config --system --list 
# 用户配置在/home/user/.gitconfig,[]表示可选内容
$ git config [--global] --list
$ git config --list

#配置用户信息
$ git config --global user.name "XXXXXXXXX"
$ git config --global user.email XXXXXX@XXXXX
#配置文本编辑器
$ git config --global core.editor vim

# 仓库建立
# 1. 本地创建仓库
# 初始化
$ git init
Initialized empty Git repository in /home/zwj/git_typing/test/.git/
# 添加文件到暂存区
$ git add .
# 忽略文件

# 提交到本地仓库,包含消息“XXXXX”
$ git commit -m "XXXXX"
# 推送到远程仓库
$ git push

# 2. 复制拉取仓库
$ git clone [url] [name]
$ git pull
$ git reset # 恢复
$ git checkout # 减除

# git仓库状态信息
git status 
# git 日志
git log

GIT 文件状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

GIT 忽略文件

在仓库目录下创建一个文件名称.gitignore的文件

文件 .gitignore 的格式规范如下:

• 所有空行或者以 # 开头的行都会被 Git 忽略。
• 可以使用标准的 glob 模式匹配。
• 匹配模式可以以(/)开头防止递归。
• 匹配模式可以以(/)结尾指定目录。
• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

GIT 绑定远程仓库

Git本地设置

git config --global user.name "codeherojake"
git config --global user.email "zwj_zz@sina.cn"

Git创建 git 仓库:

$ mkdir golang-coding-leetcode
$ cd golang-coding-leetcode
$ git init 
$ touch README.md
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin https://gitee.com/codeherojake/golang-coding-leetcode.git
$ git push -u origin "master"

已有仓库?

$ cd existing_git_repo
$ git remote add origin https://gitee.com/codeherojake/golang-coding-leetcode.git
$ git push -u origin "master"

查寻本地绑定的remot仓库并删除

$ git remote -v
 
$ git remote remove origin 

gpg签名

将您的签名密钥告知 Git - GitHub 文档

如果报错,如下错误:

gpg: skipped "XXXXXXXXXX": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object

$ git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
$ gpg --list-secret-keys --keyid-format=long
/Users/hubot/.gnupg/secring.gpg
------------------------------------
sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid                          Hubot <hubot@example.com>
ssb   4096R/4BB6D45482678BE3 2016-03-10
# 其中 3AA5C34371567BD2是secret key
$ git config --global user.signingkey 3AA5C34371567BD2
$ git commit -S -m "YOUR COMMIT MESSAGE"
$ git log --show-signature # 查看签名状态

git 分支

# 列出分支
$ git branch
# 列出远程分支
$ git branch -r
# 新建一个分支,但依旧停留在当前分支
$ git branch [name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# merge前,先前往目标branch
$ git checkout [branch]
# 合并指定branch分支到当前分支
$ git merge [branch]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
# 一般dev是开发分支