常用命令
git --version 查看版本信息
git config --global user.name = "name" 配置用户名
git config --global user.email = "xxx@xxx.com" 配置用户邮箱
cd:切换工作目录,change directory
pwd:打印工作目录,print work directory
ls:查看指定目录的内容,不指定查看当前目录,list
-a:查看所有内容,包括隐藏文件(以.开头的文件)
-l:列表显示详细信息
clear:清空屏幕显示,快捷操作:ctrl + L
git init #创建版本库
git add filename #添加指定文件,将文件修改从工作区添加到暂存区
git add . #添加所有文件
git commit -m "提交信息" #提交记录
git commit -a -m "提交信息" #提交记录(所有修改)
-a:提交所有修改,相当于执行了 git add .
git status #查看状态
-s #查看简短状态信息
git log #查看提交日志
--oneline #一行显示,显示简短描述信息
git remote add origin url #添加一个远程仓库地址
git push -u origin master #将本地mater分支推送到origin仓库的master分支
git clone url #从远程仓库克隆一个版本库
文件恢复命令:
git checkout filename #从暂存区恢复工作区(用法见链接:http://blog.csdn.net/leedaning/article/details/43701345)
git reset filename #从版本库恢复数据到工作区(用法见链接:http://blog.csdn.net/hbwindy/article/details/51519999)
文件忽略
- 并不是所有的文件都需要纳入版本管理,如运行过程中产生的日志,缓存等
- 可以将特定的文件进行忽略处理,忽略信息写在文件.gitignore中
- 忽略规则
# 表示注释,改行会被忽略,空行也会被忽略
test.txt 忽略指定文件test.txt
abc/ 忽略abc文件
/abc 只忽略项目根目录下的abc
*.apk 所有apk文件
!a.apk 除了a.apk
*.[oa] 所有的.a和.o文件
abc/*.log abc目录下的所有log文件,不会递归查找
abc/**/*.log abc目录下的所有log文件,会递归查找
分支管理
- 查看分支:
git branch #查看本地分支,带*表示当前所在的分支
git branch -r #查看远程分支
git branch -a #查看所有分支
- 创建分支
git branch develop [基于的分支或提交] #创建分支develop
- 删除分支
git branch -d develop #删除develop分支
- 切换分支
git checkout develop #切换到develop分支
- 创建并切换分支
git checkout -b develop #创建新分支develop,并切换到该分支
- 合并分支
git merge develop #将develop分支合并到当前分支
- 合并冲突
冲突文件内容
<<<<<<< 目的分支
echo 1234444;
=======
echo 1233333333;
>>>>>>> 合并分支
解决冲突
1. 手动删除冲突标志
2. 保留正确内容
3. 添加(git add .)并提交(git commit)
项目开发
- master:主分支,主要用来版本发布
- develop:开发分支,保存正常开发的最新代码
- local:表示本地添加功能时的临时分支,基于develop创建,最后需要合并到develop分支
- 描述:
- 在本地的功能分支上添加功能代码,测试完毕合并到develop分支(之后可以删除能够分支)
- 在合并在develop分支之后需要推送到服务器,先使用git pull拉下来最新的提交
- 若有冲突,解决完冲突后再次提交,然后推送到服务器
从服务器上clone下来的项目只有主分支,其它分支看不见,首次使用需要checkout
git clone https://github.com/JerryCoding/test.git
git checkout develop
ssh登录(无密码登录)
- 需要使用公钥私钥对
- 产生公钥私钥对ssh-keygen,会在~/.ssh目录下生成(id_rsa,id_rsa.pub)
- 将id_rsa.pub公钥中的内容粘贴到托管网站中即可
- 首次使用需要身份确认
- 以后就可以无密码的推送了
工作原理
工作区 <==> 暂存区 <==> 版本库 <==> 远程库
托管网站
- github.com
- git.oschina.net
- coding.net