Git 常用命令详解

219 阅读3分钟

前言

做iOS开发将近三年了, 版本控制GitSVN都有所涉猎, SVN使用的一团糟糕稀里糊涂, 这里不谈, 今天的主角是Git, 之前一直都多使用的是Source Tree这个工具, 对命令少有涉及, 这次详细了解下, 以作记录.

安装

  1. Xcode安装, Xcode偏好设置中找到Downloads,选择“Command Line Tools,点击Install就可以完成安装了
  2. 使用Homebrew安装, 没有安装Homebrew的同学请戳Homebrew安装

输入git version命令查看是否安装成功, 成功显示如下:

git version

常用命令

git help

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

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 --local --list
git config --local --list

修改和查看当前项目的用户名
修改和查看当前项目的用户

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

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

git config --local user.name "username": 更改本地仓库的名字

git config --local user.email "emailaddress@xxx.com": 更改本地仓库的邮箱

git init

该命令把当前目录变成git可以管理的仓库.

git init
git init命令
现在git仓库已经建立好了, 我们可以先创建一个README.md文件.

echo "# Project-test" >> READMME.md

echo命令是向指定文件README.md输入文本.

git add

git add命令是用于将文件添加到仓库. git add *添加所有的已改动文件到仓库

git add
执行git add

git commit

git commit命令用于把文件提交到仓库.

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

git commit --help
git commit --help

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

git commit -a -m
git commit -a -m "msg"

git rm

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

git rm
git rm

git status

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

git status
git status

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

git status -s
git status -s

M - 被修改,A - 被添加,D - 被删除,R - 重命名,?? - 未被跟踪

git diff

顾名思义, git diff命令, 用于查看文件具体修改了什么 git diff HEAD -- filename]命令可以查看工作区和版本库里面最新版本的区别

git diff
git diff

git checkou -- filename

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

git checkout <filename>
git checkout --
git checkout .用于放弃所有的本地修改

git log

git log命令用于显示提交的提示记录,排序时间由近及远.

git log
git log

git reflog

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

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.

现在我们执行会退到上一个版本:

git reset --hard HEAD~
git reset --hard HEAD~

clone代码的时候密码输错了 或者github类似的账户密码改了怎么办

打开钥匙串,点击密码项:

钥匙串密码
钥匙串密码
在该列表中找到相关网站的密码 删除即可在再次clone代码的时候输入密码