最近有使用Git, 记录之。
首先,官方教程在此,中文的。
或者看这个
一、Git安装
windows
到 Redirecting Git for Windows' homepage...下载安装
mac
系统一般都已经集成了,(我是OS X EI Capitan 10.11)
可以使用 git --version 查看
$ git --version
二、初次运行 Git 配置
主要是配置用户信息(用户名称和电子邮箱)
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
这两条配置在每次Git提交时引用,记录是谁提交了更新
查看已有配置信息
$ git config --list
// 查阅某个环境变量设定,只要把特定名字加在后面
$ git config user.name
删除配置信息
// 删除某个配置
git config --global --unset user.name
git config --unset user.name
删除多个
git config --unset-all user.name
三、创建本地库
$ git init
在要创建git库的地方执行该命令,会在当前目录下创建git仓库
可以使用 ls 命令查看,可以看到目录下多了一个 .git 文件件(默认隐藏)
$ ls -ah
接着,创建一个 Readme.txt 文件,可以用来描述这个库。
一般在 .git 所在的目录下创建,
可以使用 vi 命令创建
$ vi Readme.txt
然后,将 Readme.txt 添加到 git 仓库中
$ git add Readme.txt
最后,提交文件到仓库中
$ git commit -m "提交时写的记录"
ok, 这样就搞定了。
四、远程仓库
远程仓库是团队协作或者移动办公的最佳选择。
如果不是自己搭建的服务器,可使用第三方的Git服务。
目前名气最大的首推 GitHub ,但是 GitHub 只能免费创建开源项目,私有项目是收费的。
如果是公司使用,可以使用 Bitbucket ,可以免费创建私有项目,但是限制团队人数为5个。
添加远程库
使用命令
$ git remote add [shortname] [url]:
$ git remote add pb git://github.com/paulboone/ticgit.git
查看当前远程库
$ git remote
// 可以加上 -v 选项( --verbose 的简写,取首字母),显示对应的克隆地址:
$ git remote -v
origin git://github.com/schacon/ticgit.git (fetch)
origin git://github.com/schacon/ticgit.git (push)
重命名远程库
$ git remote rename
// 比如把 aa 改成 bb
$ git remote rename aa bb
删除远程库
$ git remote rm
$ git remote rm origin
推送数据到远程库
git push [remote-name] [branch-name]
// 把本地的 master 分支推送到 origin 服务器上
$ git push origin master
从远程仓库更新数据到本地
$ git pull origin master
pull 命令可以下载最新并同时合并到本地分支
pull 命令很方便,但坏也坏在太方便,隐藏了下载和合并两个步骤,所以网上有建议不要使用pull
// 可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息
git remote show origin
// 删除了那些远程仓库不存在的分支
git remote prune origin
// 查看当前分支信息
git branch -vv
五、暂存
开发中遇到问题需要切换分支处理,那么可以用stash暂存当前未提交的内容
// 暂存(压栈)
git stash
// 查询暂存的列表
git stash list
// 清除全部暂存数据
git stash clear
// 这是删除第一个
git stash drop stash@{0}
// 取回最近一次暂存的内容,同时删除栈中对应的stash
git stash pop
注意:切换分支的时候,最好走stash暂存数据,如果是走commit提交,需要推送到远程仓库再切换分支。
如果A分支提交了代码,没有push远程,然后切换到B分支,操作后一番后,后面切回A分支,这时候A分支刚才提交的代码会丢失,进入游离状态。
// 使用 reflog 查看commit记录
git reflog
// 回退到对应的提交版本
git reset --hard HEAD@{21}
// 回滚上一次提交
git reset --soft HEAD~1
*、错误问题
1. src refspec master does not match any
推送数据到远程库时出现,目录中没有文件,空目录不能推送。
解决:添加数据到本地库中。