http://www.git-scm.com/download/
http://www.git-scm.com/download/win
http://www.git-scm.com/download/mac
https://www.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz
https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.1.tar.xz Git via Git
If you already have Git installed, you can get the latest development version via Git itself:
git clone https://github.com/git/git 克隆远程仓库
git clone [--recursive] 远程仓库地址 [本地路径]
克隆远程单分支
git clone --single-branch -b develop 远程仓库地址
拉取远程分支
git checkout -b develop origin/develop
拉取远程分支2
git fetch origin develop:develop
git checkout develop
git branch -u origin/develop
创建分支
git checkout -b newbranch
git push -u origin newbranch
git branch -a
查看分支关联
git branch -vv
合并newbranch到master分支
git checkout master
git branch
git merge newbranch
git push
删除分支
git branch -a
git branch -d delbranch
git branch -r -d origin/delbranch
git push origin :delbarnch
创建tag
git tag newtag
git push origin newtag
git tag -l
删除tag
git tag -d deltag
git push origin :refs/tags/deltag
修改远程仓库地址
$ git remote -v
origin git@172.24.10.155:Bob/WorkflowDesigner2.git (fetch)
origin git@172.24.10.155:Bob/WorkflowDesigner2.git (push)
$ git remote set-url origin git@192.168.0.101:Bob/WorkflowDesigner2.git
$ git remote -v
origin git@192.168.0.101:Bob/WorkflowDesigner2.git (fetch)
origin git@192.168.0.101:Bob/WorkflowDesigner2.git (push)
保存临时修改
$ git stash
取出临时修改
$ git stash pop
显示所有stash
$ git stash list
清空stash
$ git stash clear
修复最近一次commit
$ git commit --amend
$ git commit --amend -m "Fixes bug #42"
回退
$ git reset --hard <commit_id>
$ git clean -df 移除未被跟踪的文件,-xf会忽略.gitignore进行移除文件
$ git push origin HEAD --force
参数说明
--mixed 缺省,只保留源码,回退commit和index信息。
--soft 只回退commit信息
--hard 彻底回退到某个版本
HEAD 最近一次提交
HEAD^ 上一次提交。
忽略已经被提交的文件
$ git rm --cached -r logs/
$ vim .gitignore 将 logs/ 加入忽略文件列表
$ git commit -m "We really don't want Git to track this anymore!"
显示某个变更
git show
git show HEAD~
显示分支历史节点
git show-branch
按贡献值显示提交
git shortlog
git shortlog -s // 按名字统计
git shortlog -s -e // 按邮箱统计
显示冲突文件
git diff --name-only --diff-filter=U
git config --global alias.conflicts "diff --name-only --diff-filter=U"
git conflicts 获取提交ID信息
$ git rev-parse HEAD
356b6cf8ad7f2a3235b0bbeae5f4991816ac8087
$ git rev-parse --short HEAD
356b6cf
$ git rev-parse --abbrev-ref HEAD
develop 配置全局信息(详细:https://git-scm.com/docs/git-config)
$ git config --global user.name "Bob"
$ git config --global user.email "bob@email.com"
$ git config --global push.default simple
// git config --global push.default matching
// 区别是,simple是仅推送当前分支,matching会推送全部分支
$ cat ~/.gitconfig
[user]
name = Bob
email = bob@email.com
[push]
default = simple
$ git config --global core.excludesfile "$HOME/.gitignore_global"
$ cat ~/.gitignore_global
*~
.DS_Store
.idea
# some comment.
设置git默认编辑器:
$ git config --global core.pager 'less' # 类似vim(建议)
$ git config --global core.pager 'more' # 输出到shell并分页
$ git config --global core.pager 'vim -' # vim(不支持着色标记)
$ git config --global core.pager 'nano -' # nano(不支持着色标记)
注:Windows的Git Console的less跟linux的more效果相同,而且没有more命令。 HTTP代理配置
格式:git config --global http.https://domain.com.proxy http://proxyUsername:proxyPassword@proxy.server.com:port
比如:git config --global http.https://gitlab.com.proxy http://10.124.124.124:80
SSH代理配置
$ vim ~/.ssh/config
# 添加内容:
Host *.gitlab.com
ProxyCommand connect -H 10.124.124.124:80 %h %p
ServerAliveInterval 30 配置SSH
$ ssh-keygen -t rsa -b 4096 -C "bob@email.com"
$ eval "$(ssh-agent -s)"
Agent pid 28728
$ ssh-add -k ~/.ssh/id_rsa // ssh-add -K ~/.ssh/id_rsa
$ clip < ~/.ssh/id_rsa.pub // pbcopy < ~/.ssh/id_rsa.pub
如果粘贴github上失败,去掉最后的一个换行。 查看公钥的MD5指纹
ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub 自动启动ssh-agent和ssh-add
# vim ~/.bash_profile // vim ~/.zshrc
------------------------
SSH_ENV="$HOME/.ssh/environment" function start_agent {
echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
# /usr/bin/ssh-add -k ~/.ssh/your_id_rsa
/usr/bin/ssh-add;
} # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cywgin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
------------------------ 更改git连接方式https为ssh
复制好ssh地址,然后打开.git/config文件修改[remote "origin"]下的url Git push/pull fatal: protocol error: bad line length character: This
原因是服务器端没为git用户配置bash,解决方法是:
# sudo usermod -s /bin/bash git GPG配置
备注:Windows安装:https://gpg4win.org/download.html
其他系统安装在此文件后面,可以搜索GnuPG
1. 查看已有的GPG keys
$ gpg --list-secret-keys --keyid-format LONG 2. 创建一个GPG key
$ gpg --full-generate-key 3. 导出GPG public key为文本格式
$ gpg --list-secret-keys --keyid-format LONG
sec rsa2048/F461FA2D923C3798 2018-09-18 [SC]
BA4CF1650621335540E42DB5F461FA2D923C3798
uid [ultimate] yourname (demo) <yourname@email.com>
ssb rsa2048/96E3D9B0C023B825 2018-09-18 [E]
记住sec中算法后面的值,输入在下面
(说明:也可以用邮箱地址替换这个KEY值)
$ gpg --armor --export F461FA2D923C3798 4. 添加一个user id到GPG key
$ gpg --edit-key F461FA2D923C3798
> adduid
> quit
Save changes? (y/N) y
可以使用help了解更多命令。 5. 给Git配置提交和tag签名
$ git config --global user.signingkey F461FA2D923C3798
$ git config --global commit.gpgsign true
提交会自动签名。
tag签名需要加入-s,如:
$ git tag -s mytag
验证
$ git tag -v mytag 6. 使用gpg-agent帮助减少密码输入,可将下面命令写入~/.xsession、 ~/.profile或者.bash_profile等启动文件
eval $(gpg-agent --daemon) 7. 导出导入key
导出
gpg --export-secret-key F461FA2D923C3798 > ~/private.key
gpg --export F461FA2D923C3798 > ~/public.key
导入
gpg --import ~/private.key 8. 删除key
gpg --delete-secret-key F461FA2D923C3798
gpg --delete-key F461FA2D923C3798 别名配置:
# vim ~/.bash_profile
alias -- -='cd -'
alias ~='cd ~'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'
alias d='dirs -v | head -10'
alias g=git
alias ga='git add'
alias gaa='git add --all'
alias gap='git apply'
alias gapa='git add --patch'
alias gau='git add --update'
alias gb='git branch'
alias gba='git branch -a'
alias gbd='git branch -d'
alias gbda='git branch --no-color --merged | command grep -vE "^(\*|\s*(master|develop|dev)\s*$)" | command xargs -n 1 git branch -d'
alias gbl='git blame -b -w'
alias gbnm='git branch --no-merged'
alias gbr='git branch --remote'
alias gbs='git bisect'
alias gbsb='git bisect bad'
alias gbsg='git bisect good'
alias gbsr='git bisect reset'
alias gbss='git bisect start'
alias gc='git commit -v'
alias 'gc!'='git commit -v --amend'
alias gca='git commit -v -a'
alias 'gca!'='git commit -v -a --amend'
alias gcam='git commit -a -m'
alias 'gcan!'='git commit -v -a --no-edit --amend'
alias 'gcans!'='git commit -v -a -s --no-edit --amend'
alias gcb='git checkout -b'
alias gcd='git checkout develop'
alias gcf='git config --list'
alias gcl='git clone --recursive'
alias gclean='git clean -fd'
alias gcm='git checkout master'
alias gcmsg='git commit -m'
alias 'gcn!'='git commit -v --no-edit --amend'
alias gco='git checkout'
alias gcount='git shortlog -sn'
alias gcp='git cherry-pick'
alias gcpa='git cherry-pick --abort'
alias gcpc='git cherry-pick --continue'
alias gcs='git commit -S'
alias gcsm='git commit -s -m'
alias gd='git diff'
alias gdca='git diff --cached'
alias gdct='git describe --tags `git rev-list --tags --max-count=1`'
alias gdcw='git diff --cached --word-diff'
alias gdt='git diff-tree --no-commit-id --name-only -r'
alias gdw='git diff --word-diff'
alias gf='git fetch'
alias gfa='git fetch --all --prune'
alias gfo='git fetch origin'
alias gg='git gui citool'
alias gga='git gui citool --amend'
alias ggpur=ggu
alias ghh='git help'
alias gignore='git update-index --assume-unchanged'
alias gignored='git ls-files -v | grep "^[[:lower:]]"'
alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
alias gk='\gitk --all --branches'
alias gke='\gitk --all $(git log -g --pretty=%h)'
alias gl='git pull'
alias glg='git log --stat'
alias glgg='git log --graph'
alias glgga='git log --graph --decorate --all'
alias glgm='git log --graph --max-count=10'
alias glgp='git log --stat -p'
alias glo='git log --oneline --decorate'
alias glog='git log --oneline --decorate --graph'
alias gloga='git log --oneline --decorate --graph --all'
alias glol='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit'
alias glola='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit --all'
alias glp=_git_log_prettily
alias glum='git pull upstream master'
alias gm='git merge'
alias gma='git merge --abort'
alias gmom='git merge origin/master'
alias gmt='git mergetool --no-prompt'
alias gmtvim='git mergetool --no-prompt --tool=vimdiff'
alias gmum='git merge upstream/master'
alias gp='git push'
alias gpd='git push --dry-run'
alias gpoat='git push origin --all && git push origin --tags'
alias gpristine='git reset --hard && git clean -dfx'
alias gpu='git push upstream'
alias gpv='git push -v'
alias gr='git remote'
alias gra='git remote add'
alias grb='git rebase'
alias grba='git rebase --abort'
alias grbc='git rebase --continue'
alias grbi='git rebase -i'
alias grbm='git rebase master'
alias grbs='git rebase --skip'
alias grep='grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}'
alias grh='git reset HEAD'
alias grhh='git reset HEAD --hard'
alias grmv='git remote rename'
alias grrm='git remote remove'
alias grset='git remote set-url'
alias grt='cd $(git rev-parse --show-toplevel || echo ".")'
alias gru='git reset --'
alias grup='git remote update'
alias grv='git remote -v'
alias gsb='git status -sb'
alias gsd='git svn dcommit'
alias gsi='git submodule init'
alias gsps='git show --pretty=short --show-signature'
alias gsr='git svn rebase'
alias gss='git status -s'
alias gst='git status'
alias gsta='git stash save'
alias gstaa='git stash apply'
alias gstc='git stash clear'
alias gstd='git stash drop'
alias gstl='git stash list'
alias gstp='git stash pop'
alias gsts='git stash show --text'
alias gsu='git submodule update'
alias gts='git tag -s'
alias gtv='git tag | sort -V'
alias gunignore='git update-index --no-assume-unchanged'
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
alias gup='git pull --rebase'
alias gupv='git pull --rebase -v'
alias gwch='git whatchanged -p --abbrev-commit --pretty=medium'
alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify -m "--wip-- [skip ci]"'
alias h=history
alias history='fc -l'
alias l='ls -lah'
alias la='ls -lAh'
alias ll='ls -lh'
alias ls='ls --color=tty'
alias lsa='ls -lah'
alias md='mkdir -p'
alias po=popd
alias pu=pushd
alias rd=rmdir
alias gitk='start gitk'
function open {
start "" "`cygpath -w \"$WINDIR/explorer.exe\"`" `cygpath -w $*`
}
function notepad {
fn=${1%:}
ln=${fn##*:}
fn=${fn%:*}
if [[ $var =~ ^-?[0-9]+$ ]]; then
start "" notepad $*
else
start "" notepad -g $ln $fn
fi
} $ source ~/.bash_profile tarball编译
https://www.kernel.org/pub/software/scm/git/
**********centos命令如下:
$ sudo su
# yum install gcc gcc-c++ perl-ExtUtils-MakeMaker -y
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel -y
下载git源码(curl和wget选一个即可)
# wget -P /usr/src/git-2.19.1 https://www.kernel.org/pub/software/scm/git/git-2.19.1.tar.xz
// # wget -P /usr/src/git-2.19.1 https://www.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz
// # curl --create-dirs -o /usr/src/git-2.19.1/git-2.19.1.tar.gz https://www.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz
# chmod -R 755 /usr/src/git-2.19.1/
解压安装
# cd /usr/src/git-2.19.1/
# tar Jxf git-2.19.1.tar.xz
// # tar zxf git-2.19.1.tar.gz
# cd git-2.19.1
# ./configure --prefix=/usr/local/
# make install
查看结果,删除yum的git和git-2.19.1.tar.gz
# whereis git
git: /usr/bin/git /usr/local/bin/git /usr/share/man/man1/git.1.gz
# /usr/local/bin/git --version
git version 2.19.1
# rm -f /usr/src/git-2.19.1/git-2.19.1.tar.gz
# yum remove git
# yum autoremove -y
# exit
$ git version
git version 2.19.1 **********debian命令如下:
$ sudo apt update
$ sudo apt install -y build-essential
$ sudo apt install -y libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
$ sudo curl --create-dirs -o /usr/src/git-2.19.1/git-2.19.1.tar.gz https://www.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz
(或)
$ sudo wget -P /usr/src/git-2.19.1 https://www.kernel.org/pub/software/scm/git/git-2.19.1.tar.gz
$ cd /usr/src/git-2.19.1/
$ sudo tar Jxf git-2.19.1.tar.xz
// $ sudo tar zxf git-2.19.1.tar.gz
$ cd git-2.19.1
$ sudo ./configure --prefix=/usr/local/
$ sudo make install
$ whereis git
git: /usr/bin/git /usr/local/bin/git /usr/share/man/man1/git.1.gz
$ /usr/local/bin/git version
git version 2.15.1
$ sudo rm -f /usr/src/git-2.19.1/git-2.19.1.tar.gz
$ sudo apt remove git
$ sudo apt autoremove --------------------------
git lfs
--------------------------
MacOS
$ brew install git-lfs Linux
$ mkdir git-lfs
$ cd git-lfs
$ wget https://github.com/git-lfs/git-lfs/releases/download/v2.5.1/git-lfs-linux-amd64-v2.5.1.tar.gz
$ tar xvzf git-lfs-linux-amd64-v2.5.1.tar.gz
$ sudo ./install.sh
$ git lfs version
$ cd ..
$ rm -rf git-lfs --------------------------
git flow
--------------------------
https://github.com/nvie/gitflow
https://github.com/nvie/gitflow/wiki/Linux
安装方式一:
MacOS
$ brew install git-flow
或者
$ wget --no-check-certificate -q -O - https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | sudo bash
Debian
$ apt-get install git-flow
Fedora
$ yum install gitflow 安装方式二:手动安装
手动安装方法1(推荐)
$ git clone --recursive git://github.com/nvie/gitflow.git
$ cd gitflow
$ sudo make install
如果安装到其他目录,可以 $ sudo make prefix=/opt/local install
$ git flow version
$ cd ..
$ rm -rf gitflow 手动安装方法2
$ wget -q -O - https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | sh
删除
$ sudo ./gitflow-installer.sh uninstall 版本:git flow version
zsh插件:git-flow、bobthecow/git-flow-completion
如果提示zsh compinit: insecure directories, run compaudit for list.
可以用下面命令更改权限
compaudit | xargs chmod -R 755 使用:分支feature/demo1,修改后合并到develop分支
$ git clone ...
$ cd ...
$ git flow init -d
$ git flow feature start demo1
// 修改代码
$ git flow feature finish demo1 分支模式学习文档:
http://nvie.com/posts/a-successful-git-branching-model/ git-extras
https://github.com/tj/git-extras
$ brew install git-extras
$ sudo yum install git-extras
$ sudo apt-get install git-extras
windows
git clone https://github.com/tj/git-extras.git
git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
install.cmd
使用方法
https://www.oschina.net/p/git-extras 查看某个贡献者
git contrib m2nlight
查看repo的概况
git summary
显示每个文件的提交数量和活跃时间
git effort --above 15 {src,lib}/*
从某个日期开始的提交
git commits-since yesterday
git commits-since last week
显示提交总数,加上参数--all显示每位作者的提交数量
git count
git count --all
移除最近提交
git undo
git undo 3
等等 **Windows**
丰富git-bash工具(需要在PowerShell 3+.NET Framework 4.5+下安装scoop)
1. 打开PowerShell,安装scoop(https://scoop.sh/)
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
set-executionpolicy unrestricted -s cu
2. 安装curl, wget, bat...
scoop install curl wget bat
3. 其他scoop命令
scoop help 显示帮助
scoop list 显示已安装的命令
scoop search <keyword> 查找命令
scoop info <name> 信息
scoop uninstall <name> 卸载
scoop update */<name> 更新全部,去掉*只更新scoop
4. 配置git-bash别名
回到git-bash
用cat代替bat
echo "alias cat='bat'" >> ~/.bash_profile
添加conflicts显示冲突文件
git config --global alias.conflicts "diff --name-only --diff-filter=U"
git conflicts
5. 安装diff-so-fancy
mkdir -p ~/bin
curl https://raw.githubusercontent.com/so-fancy/diff-so-fancy/master/third_party/build_fatpack/diff-so-fancy -L > ~/bin/diff-so-fancy
chmod +x ~/bin/diff-so-fancy
diff-so-fancy
配置git
git config --global core.pager "diff-so-fancy | less --tabs=1,5 -RFX" ----
Install GnuPG
----
https://www.gnupg.org/download/
mac
方式一:推荐
mac
$ brew install gpg pinentry pinentry-mac
$ echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf
$ killall gpg-agent
如果使用期间发生错误,参考后面的 Inappropriate ioctl for device 配置环境变量。
SourceTree支持:
$ ls -la /usr/local/bin/gpg
lrwxr-xr-x /usr/local/bin/gpg -> ../Cellar/gnupg/2.2.10/bin/gpg
$ ln -s /usr/local/bin/gpg /usr/local/bin/gpg2
在SourceTree的配置界面,点“高级”,更改“GPG程序”路径为 /usr/local/bin。
方式二:
https://gpgtools.org/
下载dmg安装 linux (tarball)
$ mkdir ~/gnupg
$ cd ~/gnupg
$ wget https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.10.tar.bz2
wget https://www.gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.32.tar.bz2
wget https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.3.tar.bz2
wget https://www.gnupg.org/ftp/gcrypt/libksba/libksba-1.3.5.tar.bz2
wget https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.1.tar.bz2
wget https://www.gnupg.org/ftp/gcrypt/ntbtls/ntbtls-0.1.2.tar.bz2
wget https://www.gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2
wget https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-1.1.0.tar.bz2
// wget https://www.gnupg.org/ftp/gcrypt/gpgme/gpgme-1.11.1.tar.bz2
// wget https://www.gnupg.org/ftp/gcrypt/gpa/gpa-0.9.10.tar.bz2 $ tar xvjf gnupg-2.2.10.tar.bz2
tar xvjf libgpg-error-1.32.tar.bz2
tar xvjf libgcrypt-1.8.3.tar.bz2
tar xvjf libksba-1.3.5.tar.bz2
tar xvjf libassuan-2.5.1.tar.bz2
tar xvjf ntbtls-0.1.2.tar.bz2
tar xvjf npth-1.6.tar.bz2
tar xvjf pinentry-1.1.0.tar.bz2
// tar xvjf gpgme-1.11.1.tar.bz2
// tar xvjf gpa-0.9.10.tar.bz2 // 编译安装GnuPG组件
$ cd libgpg-error-1.32
$ ./configure
$ sudo make && sudo make install $ cd ../libgcrypt-1.8.3
$ ./configure
$ sudo make && sudo make install $ cd ../libksba-1.3.5
$ ./configure
$ sudo make && sudo make install $ cd ../libassuan-2.5.1
$ ./configure
$ sudo make && sudo make install $ cd ../ntbtls-0.1.2
$ ./configure
$ sudo make && sudo make install $ cd ../npth-1.6
$ ./configure
$ sudo make && sudo make install // 编译安装GnuPG
$ cd ../gnupg-2.2.10
$ ./configure
$ sudo make -j8 && sudo make install $ whereis gpg
gpg: /usr/bin/gpg /usr/local/bin/gpg /usr/share/man/man1/gpg.1.gz $ /usr/local/bin/gpg --version
/usr/local/bin/gpg: error while loading shared libraries: libgcrypt.so.20: cannot open shared object file: No such file or directory
正常会显示版本信息,如果出现这个错误,先获得libgcrypt.so.20文件的位置,然后加入变量LD_LIBRARY_PATH中:
$ whereis libgcrypt.so.20
libgcrypt.so: /usr/lib/libgcrypt.so.11 /usr/lib64/libgcrypt.so.11 /usr/local/lib/libgcrypt.so.20 /usr/local/lib/libgcrypt.so
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
$ /usr/local/bin/gpg --version
gpg (GnuPG) 2.2.10
libgcrypt 1.8.3
Copyright (C) 2018 Free Software Foundation, Inc.
...
将环境变量添加到启动配置,如.bashrc中
$ echo export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH >> ~/.bashrc 同理检查PATH环境变量,使/usr/local/bin在/usr/bin前,然gpg命令直接运行我们编译的版本。
重新进入会话,输入 gpg --version 应该是刚才安装的版本。 必要组件安装:
---
// 用于输入密码保护(必须)
$ cd ../pinentry-1.1.0
$ ./configure
$ sudo make && sudo make install
---
下面两个可选,可能需要修改库的路径,configure才能正确通过。
// GPGME is the standard library to access GnuPG functions from programming languages.
$ cd ../gpgme-1.11.1
$ ./configure
$ sudo make && sudo make install // GPA is a graphical frontend to GnuPG.
$ cd ../gpa-0.9.10
$ ./configure
$ sudo make && sudo make install
---
最后可删除无用的源文件
$ cd ~
$ sudo rm -rf gnupg

git 使用和安装的更多相关文章

  1. 在windows 环境下对于 git 服务器的安装和使用

    前言: 虽然说在团队开发的时候会有版本控制服务器,但是个人自己开发的时候,有的时候也需要有个版本控制下,比如,你改好了一个小的功能,然后在这个功能上继续扩展,结果扩展不成功,于是回到这个小功能上去.当 ...

  2. Git入门(安装及基础命令行操作)

    一.安装 1.Mac 在Mac中安装Git的方法不止一种.最简单的要数通过Xcode命令行工具.对于Mavericks(10.9)或更高版本的操作系统,当你第一次尝试在终端执行git命令时,系统会自动 ...

  3. 架构(四)Git简介,安装以及相关命令SourceTree

    一 Git介绍 1.1 Git是什么? Git是一个分布式版本控制软件: 版本控制:假如开发人员开发了一个a功能,结果项目经理觉得不够需要修改,开发人员又改成了b功能,后来又改成了c功能,但是最终项目 ...

  4. Git(介绍和安装)

    Git 是什么 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统. 与常用的版本控制工具 CVS, Subversion 等不同,它 ...

  5. 如何在CentOS 7中安装最新Git(源码安装)

    如何在CentOS 7中安装最新Git 2017年05月20日 11:49:53 阅读数:1624 Git是在今天的软件开发行业一个非常有用的版本控制工具.我一直使用Git.于是为Linux公社的读者 ...

  6. Git客户端的安装与配置入门

    GitLab与Git客户端的安装与配置入门,每次配置完一段时间,就忘记配置过程了,为了自己和同学们以后有所参照,特记录了本次下载和配置,其实Git就是一个版本控制系统,类似于SVN,CVS等 下载:W ...

  7. Git学习 之 安装

    1.官网下载 https://git-scm.com/downloads 2.修改安装目标路径,其他默认安装 3.通过系统管理员身份打开cmd,输入git 检查是否安装成功

  8. Git第三方仓库安装方式(IUS)

    1.安装使用里面说的自动化安装脚本 curl https://setup.ius.io | sh 2.然后可以看到 git2u相关内容 yum search git 3.执行安装,并查看下版本 yum ...

  9. Windows+Git+TortoiseGit+COPSSH安装图文教程【转】

    转自:http://blog.csdn.net/aaron_luchen/article/details/10498181/ Windows+Git+TortoiseGit+COPSSH 安装图文教程 ...

随机推荐

  1. Oracle下Insert的介绍

    Insert是插入语句 insert into table(colname1,colname2) values(value1,valu2) 插入无效的会提示失败 数值类型在插入的时候不需要加引号,但是 ...

  2. 使用 Visual Studio 将 ASP.NET Web 应用部署到 Azure

    原文地址:https://www.azure.cn/zh-cn/documentation/articles/web-sites-dotnet-get-started 配置新的 Web 项目 下一步是 ...

  3. pouch架构源码分析

    // daemon/daemon.go 1.func NewDaemon(cfg config.Config) *Daemon 调用containerStore, err := meta.NewSto ...

  4. mysql 数据操作 单表查询 简单查询 避免重复DISTINCT

    创建数据库company create database company charset=utf8; use company; company.employee 员工id id int 姓名 emp_ ...

  5. mysql 数据操作 单表查询 where 约束 目录

    mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...

  6. android qq开合表

    qq悬浮列表功能暂未实现 main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/andr ...

  7. 002-and design-基于dva的基本项目搭建

    一.概述 在真实项目开发中,你可能会需要 Redux 或者 MobX 这样的数据应用框架,Ant Design React 作为一个 UI 库,可以和任何 React 生态圈内的应用框架搭配使用.我们 ...

  8. JAVA 对象内存结构

    JAVA对象内存结构 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header).实例数据(Instance Data)和对齐填充(Padding). 对象头 markWo ...

  9. mybatis 中jdbctype和javatype的对应关系

    1:mybatis 中jdbctype和javatype的对应关系 JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String ...

  10. [py][mx]django实现根据城市和课程机构类别过滤

    实现根据城市&课程机构过滤 实现点谁谁高亮,支持取交集. 直接上代码吧 本质上是过滤,多层过滤,取交集 def get(self, request): all_orgs = CourseOrg ...