1、克隆远程库
git clone 远程库地址
2、设置全局的变量,最好实用github一样的账号和邮箱,提交代码的时候,会带上这两项
git config --global user.name "longjq" #设置账号
git config --global user.email "life18@msn.cn" #设置邮箱
以下为查看
long@LONG-PC /D/phpStudy/WWW/study (master)
$ git config user.name;
longjq
long@LONG-PC /D/phpStudy/WWW/study (master)
$ git config user.email
life18@msn.cn
查看全部git配置
git config --list
3、master主分支
----------------------->master--------->master
|_________>分支一_______|
4、git的三个区
工作区
暂存区
- 作为过渡层
- 避免误操作
- 保护工作区和版本区
- 分支处理
版本库(库)
git add <文件名>
git add . #添加所有文件
git commit 进入vim进行注释声明
git commit -m "声明"
git commit -a -m "声明" #-a直接add文件,跳过git add 文件 步奏 -m声明
5、git命令(对比、撤销)
对比
git diff 工作区和暂存区的对比
git diff --cached(staged) 暂存区和版本库的对比
git diff master 工作区和库对比
撤销
从暂存区撤销到工作区
git reset HEAD<文件名>
从版本库撤销到工作区
git checkout --<文件名>
checkout命令会先从暂存区找到是否有文件,有就撤销,没有就去版本库那边再找,在撤销
--amend 是将上次版本库的提交的内容撤销到暂存区,然后同暂存区的内容再一次性提交
git commit -m "add3 drag.js and demo1.html" --amend
6、git命令(删除、恢复)
删除
git rm <文件名> #删除暂存区的文件(工作区文件必须依据被删除!!!)
git rm -f <文件名> #删除暂存区和工作区的文件
git rm --cached <文件名> #只会删除暂存区的内容(工作区不会被删除!!!)
恢复(对工作区操作,对版本操作后,之前的版本log将会消失掉,使用git reflog可以拿回来)
单个文件恢复
git checkout <提交commit的ID,见git log拿到> <需要恢复的文件名>
恢复指定版本
git reset --hard <commit的ID>
恢复到上一个版本
git reset --hard HEAD^
恢复到当前版本的第几个版本
git reset --hard HEAD~<Num数字,指定相对于当前版本的第几个版本>
显示所有操作的ID(拿到id后使用git reset --hard 可以再操作回去!!!)
git reflog
7、同步到远程仓库
git remote #查看远程库的名字
git remote -v #查看远程库的地址
git push origin master #将本地master库同步到远程origin库(如果没有远程的账号密码,需要你设置一下)
在github上,要在多个账号维护项目,需要把账号添加至项目中
8、多人协作远程仓库
git fetch(拉取远端仓库,不进行合并)
git pull (拉取远端仓库,直接合并)
# 查看本地库(工作区)和远端库的区别
git diff master origin/master
# 手动合并本地库(工作区)和远端库的冲突,然后手动修改文件,之后再按顺序git add|commit|push
git merge origin/master
9、开源项目协作
参与者:首先fork开源项目,然后clone下来,之后编辑完成后commit,再push上去,再pull request上去
发起人:进入pull request中去merge代码!!!
在web页面上进行修复操作
10、git的分支处理
git branch # 查看分支
git branch -v # 查看分支详细信息
git checkout new1 # 切换到new1分支
git checkout -b new2 # 快速新建new2分支并切换过去
合并,在主库master的下合并
git checkout master # 切换到master
git merge new1 # 合并new1分支的内容
git branch --merged # 查看已经合并过的分支内容
git branch --no-merged # 查看没有合并过的分支内容
git branch -d new2 # 合并后,可以删除不需要的分支了,比如删除掉new2分支,保留new1分支
git branch -D new1 # new1没有合并,但是要强制删除new1
11、github上的分支
使用git命令行创建分支并push到远端库
本地branch一个分支new1,修改后commit -a 下,然后push上去
git push origin new1 (push到远端一个分支上)
使用github的web界面创建branch分支
12、git打tag标记
git tag # 查看标签
git tag v1.0 # 设置标签
git push origin v1.0 # 推送标签至远端库