git和github的使用

1672 查看

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 # 推送标签至远端库