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. Navicat运行sql文件报错out of memory

    下载并安装mysql workbench:

  2. 山寨HTML5API classList类

    preface 认为自己去写一些类,你真的会找到自己不足的地方.事实上厉害不是你实现一个类.而是你怎样去设计一个类,能让开发人员更加easy操作. 对于这个操作样式,能够通过javascript訪问s ...

  3. centos7 安装python3.6 及模块安装演示

    目录: 下载python3.6 安装python3.6的依赖 编译安装 更改链接 更改yum脚本的python依赖 修改gnome-weaktool配置文件 修改urlgrabber配置文件 1.下载 ...

  4. python 面向对象高级应用(三)

    目录: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__getattr__ 二次加工标准类型(包装) __ ...

  5. google浏览器插件安装

    1:安装本地插件,直接将下载好的crx插件拖入到   chrome://extensions/    的空白处 http://www.cnplugins.com/tool/outline-instal ...

  6. 记录:EPALN Electric P8 2.4.4.8366 安装记录

    系统:win7  32位 旗舰版.  (原版系统 非GHOST) 第一步:解压安装. setup.exe 右击 选择 注意:把  360  百度 杀毒之类的全部关闭 第二步: 第三步: 第四步: 第五 ...

  7. mono安装

    linux上的DotNET,安装mono 当前,在Linux系统上架设ASP.NET网站.建设WEB应用工程项目已经在国内流行起来,而“Mono+Jexus”架构模式是Linux承载ASP.NET企业 ...

  8. addslashes — 使用反斜线引用字符串

    返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线.这些字符是单引号(').双引号(").反斜线(\)与 NUL( NULL 字符). 一个使用 addslashes() ...

  9. mysql8新特性(一)

    https://www.oschina.net/news/95325/mysql-8-0-ga-released http://blog.itpub.net/28218939/viewspace-21 ...

  10. 2018 Multi-University Training Contest 10 Solution

    A - Problem A.Alkane 留坑. B - Problem B. Beads 留坑. C - Problem C. Calculate 留坑. D - Problem D. Permut ...