前言
做iOS开发将近三年了, 版本控制Git
和SVN
都有所涉猎, SVN使用的一团糟糕稀里糊涂, 这里不谈, 今天的主角是Git
, 之前一直都多使用的是Source Tree
这个工具, 对命令少有涉及, 这次详细了解下, 以作记录.
安装
Xcode
安装,Xcode
偏好设置中找到Downloads
,选择“Command Line Tools
,点击Install
就可以完成安装了- 使用
Homebrew
安装, 没有安装Homebrew
的同学请戳Homebrew安装
输入git version
命令查看是否安装成功, 成功显示如下:

常用命令
git help
老规矩先介绍help
命令, 如果你忘记某个命令的作用, git help
命令会是你最得力的助手, 比如在控制台输入git help status
, 结果如下:

git config
顾名思义, git config
是用于修改git
配置的
git config --local
: 修改当前仓库的配置 读取的配置文件在当前项目目录中.git/config
git config --global
: 修改全局的配置, 配置文件目录
~/.gitconfig
git config --system
: 修改系统的配置, 配置文件目录为``
涵盖范围 system
> global
> local
, 缺省时默认为local
.
git config --local --list
:查看当前项目的配置


git config --global --list
: 查看全局的配置

git config --local user.name "username"
: 更改本地仓库的名字
git config --local user.email "emailaddress@xxx.com"
: 更改本地仓库的邮箱
git init
该命令把当前目录变成git可以管理的仓库.

git
仓库已经建立好了, 我们可以先创建一个README.md
文件.
echo "# Project-test" >> READMME.md
echo
命令是向指定文件README.md
输入文本.
git add
git add
命令是用于将文件添加到仓库.
git add *
添加所有的已改动文件到仓库

git commit
git commit
命令用于把文件提交到仓库.
git commit -m "msg"
: -m
后添加的是本次提交的说明, 方便于之后从历史记录里找到记录.
更加详细的使用说明: git commit --help
:

git commit -a -m "msg"
: -a
提交所有的文件

git rm
git rm
命令用于删除文件,同时还会将这个删除操作记录下来

git status
git status
: 该命令用于查看文件的状态

git status -s
: 查看文件的简写状态

M - 被修改,A - 被添加,D - 被删除,R - 重命名,?? - 未被跟踪
git diff
顾名思义, git diff
命令, 用于查看文件具体修改了什么
git diff HEAD -- filename]
命令可以查看工作区和版本库里面最新版本的区别

git checkou -- filename
git checkout <filename>
命令用于放弃更改

git checkout .
用于放弃所有的本地修改
git log
git log
命令用于显示提交的提示记录,排序时间由近及远.

git reflog
git reflog
命令用于查看最近的历史操作记录.

git reset
git reset
命令用于回退版本.
git reset HEAD
, 放弃git add
的操作
git reset --hard
回溯到指定状态,本地的源码会直接变为这个版本的内容, 慎用.
git reset --soft
回退到某个版本,只回退了commit的信息。如果还要提交,直接commit即可
git reset --mixed
默认参数,会退到某个版本,保留源码, 回退commit和add信息
我们可以使用上面的git log
命令查看我们想要回退的版本, HEAD
表示的是当前版本,上一个版本可以使用HEAD~
表示, 上上个版本是HEAD~~
,回退N个版本可以使用HEAD~N
.
现在我们执行会退到上一个版本:

clone代码的时候密码输错了 或者github类似的账户密码改了怎么办
打开钥匙串,点击密码项:

clone
代码的时候输入密码