git的使用
作为一个入门级的菜鸟来说,学会使用git管理自己的代码是进阶必不可少的一步。很早就注册了github账号,但是一直什么也没写,实习的部门架构师开始规范大家编写程序的规范,要求必须有相关文档,而且代码版本控制工具也打算从SVN换成git。我还想参与Elasticsearch官方文档的翻译,学习git迫在眉睫咯!
1.申请一个github账号
2.安装git for windows. https://git-for-windows.github.io/ (天啦撸下载好慢)
3.git配置
打开git bash
查看配置信息:git config --list
配置命令:git config --global user.name/core.editor/merge.tool
4.git工作流程(理解)
感觉这里和SVN差不多。
4.git基本概念
head是指向master分支的一个“游标”,Object标示区域为git对象库。
工作区修改后执行 git add 时,暂存区的目录树被更新,修改的文件被写入到对象库新的对象中,该对象的id记录在暂存区的文件索引中。
执行提交操作 git commit时, 暂存区的目录树写到对象库中,master分支指向提交时暂存区的目录树。
当执行 git reset head时,暂存区的目录树会被重写,被master所指的目录树替换,但是工作区不受影响。
当执行 git rm --cached <file>,会直接从暂存区删除文件,工作区不改变
git checkout . 会用暂存区全部或指定文件替换工作区文件。会清楚工作区未添加到暂存区的改动。
git checkout HEAD . 会用HEAD指向的master分支中的全部或指定文件替换暂存区以及工作区的文件。
5.创建仓库 (带有.git子目录)
在当前目录下创建仓库,并添加提交文件
git init newrepo
git add *.c
git add README
git commit -m 'coments’
从git仓库中拷贝项目
git clone <repo> <directory> newname
6.git基本操作
git status [-s]
绿色字体A代表add, M代表modified,R代表rename,D代表删除(git rm)
git diff
git diff --cached
git diff HEAD
git diff -stat
git commit -m 'coments'
git commit -a 跳过git add
git reset HEAD 取消已缓存的内容
git rm 从缓存区删除
git rm --chched 从缓存区中删除,但在工作区中保留文件
git mv 重命名文件
7. git分支管理 ( git 的必杀技特性,从主干线分离开来,不影响主干线同时继续工作)
git branch (branchname) 创建分支
git checkout branch 切换到分支 git checkout -b (branchname)创建分支并立刻切换到该分支下
git merge 合并分支
git branch 列出分支
git branch -d (branchname) 删除分支
git merge 分支合并到主分支(替换?)
git手动解决冲突后,要用用git add告诉git文件冲突已解决
最后git commit
8.git log
git log 查看提交历史
git log --oneline 简洁版历史
git log --oneline --graph
git log --reverse --oneline
git log --author
git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
9. git tag (永远记住那个特别的快照)
git tag -a v1.0
10. 远程仓库Github
http://www.runoob.com/git/git-remote-repo.html
11.git服务器搭建
github不想让其他人看见你的项目的话要收费,所以公司需要搭建一台git服务器作为私有仓库使用。
http://www.runoob.com/git/git-server.html