学习网址:
GIT: http://www.git-scm.com/book/zh/v2 http://blog.jobbole.com/78960/
1、安装
最简单的方法是安装 Xcode Command Line Tools;在终端运行git命令
2、初次运行前的配置
~/.gitconfig 只针对当前用户,可以传递 —global选项让git读写此文件
设置用户名称和邮件地址(每次提交使用,并写入到每次提交中):
$ git config –global user.name “John Doe”--用户名
$ git config –global user.email johndoe@example.com--邮箱
设置文本编辑器(默认vim)
$ git config –global core.editor emacs--其他编辑器名
检查配置信息$ git config —
list
检查git的某一项配置 $ git config
3、获取帮助
$ git help --参数名
$ git —help
$ man git-
4、在现有项目中初始化仓库
$ git init --创建一个名为.git的子目录,包含初始化的git仓库中所有的必须文件(仓库骨干)
若在已存在文件的文件夹,可用 git add(添加到暂存区)实现跟踪,后执行 git commit (把当前暂存区的内容提交到当前分支上)
5、克隆现有的仓库
b [url]git仓库服务器上的几乎所有的数据
6、查看源git remote -v --fetch , push
7、查看历史纪录: git log 最近到最远的显示日志, 查看修改内容: git diff 文件名
8、回退版本 : git reset -hard HEAD^ git reset -hard HEAD~n 回退n个版本
git reset -hard 版本号 回退到某个版本, git reflog 获得版本号
9、撤销修改和删除文件操作
直接手动修改,去掉,然后add,commit
恢复版本 git reset -hard HEAD^
撤销修改 git checkout — file 可丢弃工作区的修改
当 file修改后,还没放到暂存区,则会到版本库一模一样的状态
file已放入暂存区,后修改,则回到添加暂存区后的状态
10、删除文件
直接在目录下删掉文件或使用 rm filename 命令
查看文件时,可直接commit,或从版本库恢复被删掉的文件
没commit前,恢复文件使用 git checkout — filename
11、远程仓库
创建SSH Key 在用户主目录下,是否有
.ssh目录,若有,再看是否有id_rsa和id_rsa.pub文件,若有,则跳过,若木有,则输入
ssh-keygen -t rsa -C “zhangyaling@baijiahulian.com”
id_rsa 是私钥,id_rsa.pub是公钥
登录github,打开settings 中的SSH Keys页面,然后点击Add SSH Key,添加人意的title,在Key文本框里粘贴id_rsa.pub文件的内容
*创建远程仓库 ,在本地仓库运行一下命令:
git remote add origin 代码地址
git push -u origin master
本地做了提交,就可以通过 git push origin master 命令把本地master分支的最新修改推送到github上
*远程克隆
登录github,创建新的仓库,使用命令 git clone 远程代码地址
12、创建与合并分支 ( -m 后是注释 )
*查看分支:
git branch
*创建分支: git branch name
*切换分支: git checkout name
*创建并切换分支:git checkout -b name
*合并某分支到当前分支: git merge name
git merge —no-ff -m “merge with no-ff” name 禁用fast forward
*删除分支: git branch -d name
13、bug分支
隐藏当前的工作现场:git stash
查看所有呗隐藏的文件列表: git stash list
恢复工作现场: git stash apply , 恢复后不删除内容,
使用命令git stash drop删除stash 内容
恢复的同时并删除内容: git stash pop
14、多人协作
*查看远程库信息: git remote
*查看远程的详细信息: git remote -v
*推送分支( push ):
git push origin branch-name
*推送失败,则先用git pull 试图合并
合并有冲突,需解决冲突,并在本地提交,在推送分支
*需要推送的分支:master分支是主分支,时刻与远程同步
修复bug分支,先合并到主分支上,在推送主分支master到远程上
*指定本地与远程的分支的连接:
git branch —set-upstream branch-name origin/branch-name
*抓取分支( pull ):git pull