快速使用Git
25 September 2017
目录:
在多人协作开发中CVS的重要性不言而喻。Git是近年来风头正盛的分布式代码关系系统。本文简要描述如何快速的使用Git和一些简单的Git操作。
1. 安装
1.1 Windows
通过git-scm下载。
1.2 macOS
brew install git
如果没有安装Homebrew,可到git-scm下载,对于macOS/iOS 开发者直接安装Xcode即可。
1.3 Linux
# Debian/Ubuntu
sudo apt install git
# RedHat/Centos
sudo npm install git # 或是dnf
2. 操作
安装成功后,打开Terminal
,输入git
,会打印如下信息:
usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
These are common Git commands used in various situations:
start a working area (see also: git help tutorial)
clone Clone a repository into a new directory
init Create an empty Git repository or reinitialize an existing one
work on the current change (see also: git help everyday)
add Add file contents to the index
mv Move or rename a file, a directory, or a symlink
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
......
如果需要查看帮助,使用git --help
或man git
即可。
2.1 常用命令
生成SSH-key
# 生成 SSH-key
ssh-keygen -C "${YOUR_EMAIL}" -t rsa
# 拷贝公钥到指定服务器
ssh-copy-id ${USER_NAME}@${HOST}
简单配置
# 个人信息
git config [--global] user.name "[name]"
git config [--global] user.email "[email]"
添加文件到版本库
# 添加文件到暂存区,可以为单个文件,目录,多个文件
git add [file]
# 提交暂存区的文件到版本库
git commit -m "[描述信息]" [file]
分支管理
# 列出所有分支
git branch -a
# 列出远程分支
git branch -r
# 创建分支
git branch [branch-name]
# 切换分支
git checkout [branch-name]
# 创建并切换到指定分支
git checkout -b [branch-name]
# 删除分支
git branch -d [branch-name]
# 删除远程分支
git push origin :[branch-name]
和远程版本库交互
# 拉取远程版本库记录到本地, 一般直接使用git fetch即可
git fetch [options] [<repository> [<refspec>...]]
# 拉取远程记录并修改到本地
# 如果要拉取所有分支,直接git pull即可
git pull [options] [<repository> [<refspec>...]]
# git push 推送本地提交到远程版本库
# 推送当前分支
git push
# 推送所有分支
git push --all
# 推送tag
git push tags
配置保存账户信息策略, 参考: Git Tools - Credential Storage
# git credential
# .gitconfig
[credential]
helper = store --file ~/.git-credentials
helper = cache --timeout 30000
更多命令可参考阮一峰老师的 常用 Git 命令清单
3. 图形化软件
- GitKraKen
- SourceTree
- Git-GUI
- TortoiseGit
- SmartGit
- Gitg
- GitHub Desktop
4. 常用技巧
4.1 合并两个独立仓库
合并两个独立仓库A, B:
- 添加仓库 A 远程地址到 B 仓库
git remote add a ${a_url}
- 拉取别名为 a 的分支信息
git fetch a
(注意tag) - 本地创建新分支跟踪 a
git checkout -b a a/master
- 切换分支到 B/master
git checkout master
- 合并分支 a 到 master
git merge a --allow-unrelated-histories
,--allow-unrelated-histories
允许没有交集的两个分支进行合并
为保证各个仓库在不同文件夹,合并之前可进行迁移,创建同名文件夹,把原文件放到各自文件夹内,合并之后自然分布到各自目录,避免冲突,易于管理