https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E7%94%9F%E6%88%90-SSH-%E5%85%AC%E9%92%A5#_generate_ssh_key
1 安装 Git
yum install git
Git 依赖的库
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
添加更多格式的文档
yum install asciidoc xmlto docbook2x
2 初次运行 Git 前的配置
git config --global user.name "HanBing"
git config --global user.email [email protected]
git config --list
3 GitHub - 账户的创建和配置
Generating a new SSH key
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Adding your SSH key to the ssh-agent
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
Adding a new SSH key to your GitHub account
cat < ~/.ssh/id_rsa.pub
In the upper-right corner of any page, click your profile photo, then click Settings.
n the user settings sidebar, click SSH and GPG keys.
SSH Key buttonClick New SSH key or Add SSH key. * n the user settings sidebar, click SSH and GPG keys.
Click New SSH key or Add SSH key.
Click Add SSH key.
If prompted, confirm your GitHub password.
Testing your SSH connection
ssh -T [email protected]
Working with SSH key passphrases
Adding or changing a passphrase
add below to ~/.bashrc
################################
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
################################
4 GitHub - 维护项目
这里除了一个你必须要填的项目名,其他字段都是可选的。 现在只需要点击 “Create Repository” 按钮,Duang!!! – 你就在 GitHub 上拥有了一个以
https://github.com/Aquariusjames/jtames
[root@localhost jtames]# mkdir practice
[root@localhost jtames]# cd practice/
[root@localhost practice]# git init
Initialized empty Git repository in /root/jtames/practice/.git/
[root@localhost practice]# git clone https://github.com/Aquariusjames/jtames
Cloning into 'jtames'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
[root@localhost practice]# git ls-remote https://github.com/Aquariusjames/jtames
128dadf545d9db0d5dc52b781329000c2c60758b HEAD
128dadf545d9db0d5dc52b781329000c2c60758b refs/heads/master
5 Git 基础 - 获取 Git 仓库
配置并初始化一个仓库(repository)、开始或停止跟踪(track)文件、暂存(stage)或提交(commit)更改。 本章也将向你演示如何配置 Git 来忽略指定的文件和文件模式、如何迅速而简单地撤销错误操作、如何浏览你的项目的历史版本以及不同提交(commits)间的差异、如何向你的远程仓库推送(push)以及如何从你的远程仓库拉取(pull)文件。
git init
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
克隆现有的仓库
git clone https://github.com/libgit2/libgit2
6 Git Cheat Sheet
创建
复制一个已创建的仓库:
$ git clone ssh://[email protected]/repo.git
创建一个新的本地仓库:
$ git init
本地修改
显示工作路径下已修改的文件:
$ git status
显示与上次提交版本文件的不同:
$ git diff
把当前所有修改添加到下次提交中:
$ git add .
把对某个文件的修改添加到下次提交中:
$ git add -p
提交本地的所有修改:
$ git commit -a
提交之前已标记的修改:
$ git commit
附加消息提交:
$ git commit -m 'message here'
修改上次提交
Don't amend published commits!
$ git commit --amend
提交历史
从最新提交开始,显示所有的提交记录(显示hash, 作者信息,提交的标题和时间):
$ git log
显示所有提交(仅显示提交的hash和message):
$ git log --oneline
显示某个用户的所有提交:
$ git log --author="username"
显示某个文件的所有修改:
$ git log -p
谁,在什么时间,修改了文件的什么内容:
$ git blame
分支与标签
列出所有的分支:
$ git branch
切换分支:
$ git checkout
基于当前分支创建新分支:
$ git branch
基于远程分支创建新的可追溯的分支:
$ git branch --track
删除本地分支:
$ git branch -d
给当前版本打标签:
$ git tag
更新与发布
列出对当前远程端的操作:
$ git remote -v
显示远程端的信息:
$ git remote show
添加新的远程端:
$ git remote add
下载远程端版本,但不合并到HEAD中:
$ git fetch
下载远程端版本,并自动与HEAD版本合并:
$ git remote pull
将远程端版本合并到本地版本中:
$ git pull origin master
将本地版本发布到远程端:
$ git push remote
删除远程端分支:
$ git push
or
git push
发布标签:
$ git push --tags
合并与重置
将分支合并到当前HEAD中:
$ git merge
将当前HEAD版本重置到分支中:
Don't rebase published commit!
$ git rebase
退出重置:
$ git rebase --abort
解决冲突后继续重置:
$ git rebase --continue
使用配置好的merge tool 解决冲突:
$ git mergetool
在编辑器中手动解决冲突后,标记文件为已解决冲突
$ git add
$ git rm
撤销
放弃工作目录下的所有修改:
$ git reset --hard HEAD
移除缓存区的所有文件(i.e. 撤销上次git add):
$ git reset HEAD
放弃某个文件的所有本地修改:
$ git checkout HEAD
重置一个提交(通过创建一个截然不同的新提交)
$ git revert
将HEAD重置到上一次提交的版本,并放弃之后的所有修改:
$ git reset --hard
将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改:
$ git reset
将HEAD重置到上一次提交的版本,并保留未提交的本地修改:
$ git reset --keep
http://www.jianshu.com/u/mr1Dbv
Command
git checkout
git status
git checkout -b
git commit
git diff
git add
git clean -fdx
git fetch --prune
git pull --ff-only
git branch -D
git push
git merge
git rm
git rebase
git reset
git revert
git push origin :yourbranch
Source:
Git Cheat Sheet
http://www.jianshu.com/p/c4ace9202a34
Git,Github和Gitlab简介和基本使用
http://www.jianshu.com/p/8d497989f704
Pro Git
https://git-scm.com/book/zh/v2
https://git-scm.com/book/en/v2
1.5 起步 - 安装 Git
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git
Connecting to GitHub with SSH
https://help.github.com/articles/connecting-to-github-with-ssh/