svn是一个集成的
git是一个分布式的
1、注册一个账号密码
2、点击 New repository(创建一个仓库)
3、Repository name --drag写一个拖拽的项目
4、Description (描述) ---拖拽的醒目
5、public (公开)
6、initialize this repository with a README(README文件)
7、create repository 然后就相当于建立了一个仓库了
这下就相当于再github上有了一个drag的仓库了
-------------------本地--------------
然后clone代码到本地
git clone https://github.com/NICE-MST/Drag.git
下载下来之后会有两个文件,其中的.git文件是隐藏的,还有一个就是初始的README
设置贡献值
先进入cd Drag 然后:
git config -global NICE-MST
git config -global 759467654@qq.com
git config -list //查看所有的配置项
MST-N!CE@DESKTOP-EBUU92O MINGW64 /d/phpStudy/PHPTutorial/WWW/app/Drag (master)
(master)的意思是主分支,其他的分支都是在这个主分支里面拉取的
git的三个区
工作区:就是我们工作的这些代码
暂存区: 就是我们写的代码先从我们本地的工作区暂存到暂存区,然后再提交到版本库里面
作为过渡层
避免误操作
保护工作区和版本区
分支处理
版本区:master
git命令
git status //这个是看你的本地的工作区的代码的,比如刚刚创建,但是还没有添加到暂存区
git add //这个是把本地的代码添加到暂存区
git add name //git add index.html (这个时候会出现[master +2 ~0 -0 !] +2是说我们工作区有两个文件,0个修改,和0个减少)
. //全部修改的都提交了
git commit -m "change demo" 把我们暂存区的代码,放到版本库里面
git commit -a -m "change demo" //-a是添加到暂存区,然后再提交到版本库
git log 是我们用来看提交历史用的(按回车可以显示更多的历史记录)
对比:(三个区有什么不同)
git diff 指的是我们工作区和暂存区的对比
git diff --cached /git diff --staged 指的是我们的暂存区和版本库之间的对比
git diff master(主分支) //工作区和版本库之间的对比
撤销
git reset HEAD <file.name> //把暂存区的东西撤销到工作区,并清空暂存区的之前提交的
git reset HEAD index.js
git checkout -- <file.name> //例如工作区添加了一些代码,这时候我们想要工作区的内容和版本区的内容一致,那么就用这个命令的、
git checkout --index.js
git commit --amend //提交有错误,撤销操作
比如修改了两个文件a.js和b.js,但是只是git add a.js ,然后就直接git commit到了版本区
但是我想提交两个,另一个忘了,所有这时候需要git add b.js,然后git commit -m "changed" --amend
加--amend就会把之前提交的撤销回来,然后再一起提交
然后git log就会发现提交的历史纪录只会有第二个一起commit的时候的记录
删除
git rm <file.name> //git rm test.txt 当我们工作区把文件删除之后,执行这个命令才会把暂存区的代码给删除掉
git rm -f <file.name> //git rm -f test.txt //当工作区和暂存区都有这个文件,那么就会都删掉的
git rm --cached <file.name> //当工作区和暂存区都有这个文件,只会删除暂存区的文件,工作区的会保留下来
恢复(误删除了,或者提交了一些有bug的文件,需要恢复到之前的版本)
git checkout commit_id <file.name> //工作区的index.js文件被删除了,是对一个版本下的一个文件的还原
git checkout commit_id index.js
commit_id可以通过git log获取(从而恢复到某一个版本)
git reset --hard commit_id 对一个版本的还原
HEAD^ head是指针,通过指针来获取他的版本
git reset HEAD^ //这个会往前回一个版本
HEAD~<num>
git reset HEAD~2 //这个会往前回2个版本
git reflog //从过去版本回到现在的版本,这个会返回一些操作信息
找到现在的版本然后拿到commit_id,然后git reset --hard commit_id
----------------------
同步到远程仓库
git remote
-v
origin //远端的默认名字,再上传的时候需要写到
git push origin master
---------------------------
多人协作解决冲突
先在git官网点击New collaborator,然后输入他的账号名字,然后点击添加
然后第二个开始一个项目的时候就需要先把git config -global NICE-MST
git config -global 759467654@qq.com,然后把远端的代码拉取到本地 git clone https:.....
然后第二个人也就可以开发了
再每次开发的时候最好需要先更新以下代码,避免冲突(比如github上设置的width为200px,然后你在本地设置为100px,你再提交就会有冲突)
解决冲突;先把远端的代码拉去然后
git fetch (先把远端的代码拉取,先不合并)---这种可以查看冲突的原因
Git diff master origin/master 查看冲突在哪
Git merge orgin/master 手动合并,然后就会在本地看到那一部分冲突了
git pull (先把远端的代码拉取,并且合并)
解决完冲突后就可以提交代码了
-----------------------------------------
开源项目协作:
加入没有权限,点击fork,相当于新开了一个分支,然后下载下来git clone
然后修改了bug之后进行提交 git commit -a -m "fix a bug"--->git push origin master
pull request
Git分支(多个人在同一个分支上开发,会很容易冲突,分支操作就不会,多人开发好之后再合并)
git branch new1 创建一个分支new1
-d
--merged
--no-merged
git checkout new1 切换到new1分支
git -b checkout new1 先创建一个分支new1,然后切换到new1分支 -b就是branch的简写
git merge //快速合并
github上的分支
git push
github上直接创建
github上的标签
git tag
github上直接创建
创建组织
github上创建
点击New organization 然后写一个组织的名字:mst,然后就一直按要求下去
创建博客(可以使用免费的域名和空间)
github上创建
https://pages.github.com/
注意格式的正确性
总结
如何深入?
技巧
资源
http://git.oschina.net/progit/
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
git是一个分布式的
1、注册一个账号密码
2、点击 New repository(创建一个仓库)
3、Repository name --drag写一个拖拽的项目
4、Description (描述) ---拖拽的醒目
5、public (公开)
6、initialize this repository with a README(README文件)
7、create repository 然后就相当于建立了一个仓库了
这下就相当于再github上有了一个drag的仓库了
-------------------本地--------------
然后clone代码到本地
git clone https://github.com/NICE-MST/Drag.git
下载下来之后会有两个文件,其中的.git文件是隐藏的,还有一个就是初始的README
设置贡献值
先进入cd Drag 然后:
git config -global NICE-MST
git config -global 759467654@qq.com
git config -list //查看所有的配置项
MST-N!CE@DESKTOP-EBUU92O MINGW64 /d/phpStudy/PHPTutorial/WWW/app/Drag (master)
(master)的意思是主分支,其他的分支都是在这个主分支里面拉取的
git的三个区
工作区:就是我们工作的这些代码
暂存区: 就是我们写的代码先从我们本地的工作区暂存到暂存区,然后再提交到版本库里面
作为过渡层
避免误操作
保护工作区和版本区
分支处理
版本区:master
git命令
git status //这个是看你的本地的工作区的代码的,比如刚刚创建,但是还没有添加到暂存区
git add //这个是把本地的代码添加到暂存区
git add name //git add index.html (这个时候会出现[master +2 ~0 -0 !] +2是说我们工作区有两个文件,0个修改,和0个减少)
. //全部修改的都提交了
git commit -m "change demo" 把我们暂存区的代码,放到版本库里面
git commit -a -m "change demo" //-a是添加到暂存区,然后再提交到版本库
git log 是我们用来看提交历史用的(按回车可以显示更多的历史记录)
对比:(三个区有什么不同)
git diff 指的是我们工作区和暂存区的对比
git diff --cached /git diff --staged 指的是我们的暂存区和版本库之间的对比
git diff master(主分支) //工作区和版本库之间的对比
撤销
git reset HEAD <file.name> //把暂存区的东西撤销到工作区,并清空暂存区的之前提交的
git reset HEAD index.js
git checkout -- <file.name> //例如工作区添加了一些代码,这时候我们想要工作区的内容和版本区的内容一致,那么就用这个命令的、
git checkout --index.js
git commit --amend //提交有错误,撤销操作
比如修改了两个文件a.js和b.js,但是只是git add a.js ,然后就直接git commit到了版本区
但是我想提交两个,另一个忘了,所有这时候需要git add b.js,然后git commit -m "changed" --amend
加--amend就会把之前提交的撤销回来,然后再一起提交
然后git log就会发现提交的历史纪录只会有第二个一起commit的时候的记录
删除
git rm <file.name> //git rm test.txt 当我们工作区把文件删除之后,执行这个命令才会把暂存区的代码给删除掉
git rm -f <file.name> //git rm -f test.txt //当工作区和暂存区都有这个文件,那么就会都删掉的
git rm --cached <file.name> //当工作区和暂存区都有这个文件,只会删除暂存区的文件,工作区的会保留下来
恢复(误删除了,或者提交了一些有bug的文件,需要恢复到之前的版本)
git checkout commit_id <file.name> //工作区的index.js文件被删除了,是对一个版本下的一个文件的还原
git checkout commit_id index.js
commit_id可以通过git log获取(从而恢复到某一个版本)
git reset --hard commit_id 对一个版本的还原
HEAD^ head是指针,通过指针来获取他的版本
git reset HEAD^ //这个会往前回一个版本
HEAD~<num>
git reset HEAD~2 //这个会往前回2个版本
git reflog //从过去版本回到现在的版本,这个会返回一些操作信息
找到现在的版本然后拿到commit_id,然后git reset --hard commit_id
----------------------
同步到远程仓库
git remote
-v
origin //远端的默认名字,再上传的时候需要写到
git push origin master
---------------------------
多人协作解决冲突
先在git官网点击New collaborator,然后输入他的账号名字,然后点击添加
然后第二个开始一个项目的时候就需要先把git config -global NICE-MST
git config -global 759467654@qq.com,然后把远端的代码拉取到本地 git clone https:.....
然后第二个人也就可以开发了
再每次开发的时候最好需要先更新以下代码,避免冲突(比如github上设置的width为200px,然后你在本地设置为100px,你再提交就会有冲突)
解决冲突;先把远端的代码拉去然后
git fetch (先把远端的代码拉取,先不合并)---这种可以查看冲突的原因
Git diff master origin/master 查看冲突在哪
Git merge orgin/master 手动合并,然后就会在本地看到那一部分冲突了
git pull (先把远端的代码拉取,并且合并)
解决完冲突后就可以提交代码了
-----------------------------------------
开源项目协作:
加入没有权限,点击fork,相当于新开了一个分支,然后下载下来git clone
然后修改了bug之后进行提交 git commit -a -m "fix a bug"--->git push origin master
pull request
Git分支(多个人在同一个分支上开发,会很容易冲突,分支操作就不会,多人开发好之后再合并)
git branch new1 创建一个分支new1
-d
--merged
--no-merged
git checkout new1 切换到new1分支
git -b checkout new1 先创建一个分支new1,然后切换到new1分支 -b就是branch的简写
git merge //快速合并
github上的分支
git push
github上直接创建
github上的标签
git tag
github上直接创建
创建组织
github上创建
点击New organization 然后写一个组织的名字:mst,然后就一直按要求下去
创建博客(可以使用免费的域名和空间)
github上创建
https://pages.github.com/
注意格式的正确性
总结
如何深入?
技巧
资源
http://git.oschina.net/progit/
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000