Git教程
August 22, 2018
介绍
Git是做项目的版本管理,你也可以称它们为版本管理工具。假如现在你有一个文件夹,里面可以是项目,也可以是你的个人笔记(如我这个博客),或者是你的简历、毕业设计等等,都可以使用git来管理。
目前常用的版本控制器有Git和SVN,即使这两个你没有全用过,至少也会听过,我这里以Git为例,个人比较喜欢Git,你也可以看看这篇文章:为什么Git比SVN好。我使用的是Mac,Mac上没自带Git环境,但是作为iOS开发者,我安装Xcode的时候,Xcode里是有自带Git的,所以我不需要考虑怎么去安装Git了。
安装Git
在Mac OS X上安装Git
提供两种方法参考:
1、通过homebrew安装Git,具体方法请参考homebrew的文档
2、直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode。
在Windows上安装Git
从https://git-for-windows.github.io 下载,然后按默认选项安装即可,安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
配置Git
安装完成后,还需要最后一步设置,在命令行输入:
- $ git config —global user.name “Your Name”
- $ git config —global user.email “email@example.com”
“Your Name”: 是每次提交时所显示的用户名,因为Git是分布式版本控制系统,当我们push到远端时,就需要区分每个提交记录具体是谁提交的,这个”Your Name”就是最好的区分。
“email@example.com”: 是你远端仓库的email
—global:用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然我们也可以对某个仓库指定不同的用户名和Email地址。
开始使用
建立仓库
你在目标文件夹下使命令:
- git init (创建.git文件)
就会创建一个 .git
隐藏文件,相当于已经建立了一个本地仓库。
添加到暂存区:
- git add . (全部添加到暂存区)
- git commit -m ’ first commit’ (提交暂存区的记录到本地仓库)
分支
git branc 查看时如出现
- (HEAD detached at analytics_v2)
- dev
- master
代表现在已经进入一个临时的HEAD,可以使用 git checkout -b temp
创建一个 temp branch,这样临时HEAD上修改的东西就不会被丢掉了。
然后切换到 dev 分支上,在使用 git branch merge temp,就可以把 temp 分支上的代码合并到 dev 上了。
查看历史提交
git log --oneline --graph --decorate
提示技巧
历史提交”续命”
在之前修改了一个文件,但是没有commit,现在我想要commit,日期为那天的日期
#git commit --date="月 日 时间 年 +0800" -am "提交"
git commit --date="Dec 10 9:05:20 2017 +0800" -am "提交"
撤销push到远程仓库的commit
先在本地回退到相应的版本:
git reset --hard <版本号>
// 注意使用 --hard 参数会抛弃当前工作区的修改
// 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交
如果此时使用命令:
git push origin <分支名>
为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数—force
git push origin <分支名> --force
fork的仓库与原仓库同步
# 将原仓库远程地址添加到本地,并命名为upstream分支
git remote add upstream git@github.com:....git
# 获取原仓库内容
git fetch upstream
# 合并到本地master分支
git merge upstream/master
# 推送到自己fork过来的远程仓库
git push
修改已经push到远程仓库的上一个commit message
# 修改上一个commit message
git commit --amend
# 强制推送到远程仓库
git push -f
[部署]本地创建gh-pages并推送到远程
# 先在项目目录下构建
npm run build # yarn build
# 切进部署的静态文件目录里
cd .../dist
# 创建gh-pages并推送到远程
git add --all
git commit -m 'deploy'
git push -f git@github.com:ZYSzys/<repoName>.git master:gh-pages