在此推荐一个非常不错的Git学习网站:http://www.liaoxuefeng.com
一,创建版本库
①git init
把指定的目录变成Git可以管理的仓库
②git add readme.txt
把readme.txt放到Git暂存区
③git commit -m "test"
把暂存区里面的内容提交到Git仓库,所以如果想提交代码到Git仓库必须经过②和③两个步骤
二,时光机穿梭
①git status
查看工作空间里面的文件还有没有提交到暂存区,暂存区里面的内容有没有提交到Git仓库
1.工作空间存在文件没有提交到暂存区
2.暂存区存在文件没有提交到Git仓库
3.暂存区里面的文件提交到Git仓库
②git diff readme.txt
git tracks change of files:Git跟踪到有文件发生了改变
三,版本回退
①git log
查看历史提交记录
②git log -- pretty=oneline
输出提交版本概要信息
③git reset --hard HEAD^
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git add readme.txt
将文件提交到Git暂存区
Git commit -m "test"
将文件提交Git仓库
git checkout -- readme.txt
将本地工作空间里面的文件与Git暂存区里面的文件进行比较,删除本地文件里面多余的内容
git reset HEAD readme.txt
将Git暂存区里面的内容还原到上一个版本
rm test.txt
删除工作空间里面的文件
git rm test.txt
删除Git版本库中的文件
远程仓库
git branch dev
创建分支
git checkout dev
切换分支
git branch
查看当前分支
git checkout -b dev
创建并切换到分支
git add -A 和 git add . 以及 git add -u的区别
git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改以及新文件,但不包括被删除的文件
git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区,add -u 不会提交新文件(untracked file).(git add --update的缩写)
git add -A : 是上面两个功能的集合(git add --all的缩写)
参考:http://www.cnblogs.com/skura23/p/5859243.html
git show 某次的提交哈希值 文件名(可选)
可以查看某个版本提交的文件
多人协作(重要)
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。
①.要查看远程库的信息,用git remote
②.要查看用户可以对远程仓库进行哪些操作,用git remote -v
git branch dev : 创建本地分支
说明:在这里为什么说本地分支呢?因为单纯使用git branch dev命令之后,只会在本地创建dev分支,而在远程仓库并没有dev分支
git checkout dev:切换到本地分支
git checkout -b dev:创建并切换本地分支
git checkout dev:切换成本地dev分支
git branch:查看当前正在使用的分支
git push origin dev : 生成远程仓库dev分支(分支名称dev)并提交代码
说明:在使用该命令的时候,因为远程仓库还没有dev分支,该命令会在远程生成dev分支并提交代码
git merge dev:在master分支上执行该命令的作用:将dev分支上的代码合并到master分支上
git branch -d dev :删除本地分支,此时远程仓库的分支并没有删除掉
git branch origin :dev 删除远程仓库分支dev
说明:可以用这个非常无厘头的语法来删除它:git push [远程名] :[分支名],注意origin后的空格
在Git v1.7.0 之后,可以使用这种语法删除远程分支:
git push origin --delete <branchName>
在这里说明一下 我日常使用Git开发流程
①克隆Git仓库项目到本地
git clone git@github.com:michaelliao/gitskills.git
②创建本地分支并切换到分支dev
git checkout -b dev 或者 git branch dev (创建分支) , git checkout dev(切换分支)
③在dev上开发,开发完成后提交到服务器dev分支(此时会自动创建分支dev)
git push origin dev
④合并代码,首先需要切换到master分支
git checkout master
⑤更新master
git pull origin master
⑥将dev分支合并到master
git merge dev
⑦合并成功后提交master
git push origin master
说明:将master合并到分支也是同样的步骤
版本回退,为了安全起见 一定要在分支上进行
先从master分支 dev
git branch dev
切换分支
git checkout dev
回退到指定版本
git reset --hard commitVersion
Git命令练习:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交
参考:http://www.cnblogs.com/wangkongming/p/4515273.html
Git在线教程:https://git-scm.com/book/zh/v1
http://zengrong.net/post/1746.htm