Git学习总结
2016-01-29 22:27
447 查看
神奇的Git--https://github.com/Gitzhengbin
基本配置:
1.本地仓库管理者用户名与Email,用于版本备注,与生成SSH keygit config --global user.name "Your Name"
git config --global user.email "email@example.com"
2.创建版本库 ->git init
把当前目录编程Git可以管理的仓库
(mkdir abc)创建名为 abc 的文件夹
(rm -rf abc)删除名为 abc 的文件夹
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
(pwd)查看当前所在路径
(ls -ah)查看文件夹所有文件,包括隐藏域
基本操作:
查看仓库当前状态->git status查看仓库当前做了哪些修改->git diff
查看工作区与版本库里面最新版本的区别->git diff HEAD -- readme.txt
查看命令历史->git reflog
查看提交历史->git log
信息简略版->git log --pretty=oneline
将文件向Git版本库中更新->
1.git add 把文件修改添加到暂存区
2.git commit 提交更改,把暂存区的所有内容提交到当前分支
注意:
要注意工作区与暂存区的概念
* 第一次修改 -> git add -> 第二次修改 ->git commit
Git管理的是修改,当用 git add 命令后,在工作区的第一次修改被放入暂存区中,等待被提交(commit),但是,第二次的修改并没有放入暂存区中(也就 是没有执行 git add 命令),所以,git commit 只负责把暂存区的修改提交,也就是说仅提交了第一次的修改,而第二次的修改并没有提交
版本回退:
回到之前版本->git reset --hard HEAD^回到指定版本->git reset --hard commit_id
远程仓库:
从GitHub克隆一个仓库到本地Git->git clone git@github.com:Gitzhengbin/gitskills.git
把本地Git仓库与GitHub中的Git仓库进行远程同步
1.在GitHub中创建新仓库,以仓库名为 learngit 为例
2.->git remote add origin git@github.com:Gitzhengbin/learngit.git
这一步算是添加一个origin(远程库)
3.->git push -u origin master
这一步算是将origin,推送到远程(GitHub)
也就是把当前分支master推送到远程
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master 分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
以后若再向这个仓库更新,则用->git push origin master 即可
分支管理:
创建分支并切换到分支'dev'->git checkout -b dev
等价于
->git branch dev
+git checkout dev
查看当前所有分支
->git branch
(* 代表当前所在分支)
删除分支
->git branch -d dev
合并分支dev到当前master的版本
->git merge dev
切换分支(dev)与主线(mester)
->git checkout [dev/master]
查看分支合并图
->git log --graph
使用中出现错误总结:
问题1:fatal: remote origin already exists.
解决:git remote rm origin
问题2:error: failed to push some refs to 'git@github.com:Gitzhengbin/mxbc.git'
解决:由于向远程仓库提交的本地代码,与远程仓库的代码不一致(远程仓库比本地仓库多,比如远程仓库多一个README.md,遇到这个问题就由我在远程添加这个文件造成的)
所以首先将远程仓库与本地仓库进行合并后,再进行推送
git pull --rebase origin master(注:pull=fetch+merge)
感谢:廖老师的博客教程
相关文章推荐
- Android 简单欢迎页面设计
- Leetcode234 单链表+回文判断
- springmvc 传递和接收数组参数
- jQuery .tmpl(), .template()学习
- 如何在运行时改变App的图标
- 用C++11的std::async代替线程的创建
- 两个人是如何建立交流的。
- Android 带固定图片的EditText
- Unity3D 固定功能函数
- 《笨办法学Python》 第27课手记
- springmvc + jquery datatable + ajax实现动态分页查询
- C语言基础(转载自大海笔记)
- zoj--1610
- VC++创建快捷方式、删除快捷方式、添加开始菜单程序组菜单并删除程序组菜单的实例
- Java多态实例
- HZNUOJ 1472 The nearest taller cow
- IceBox java 入门例子
- 使用DiskGenius来读写VMware的.vmdk文件?
- Android基础之Activity的生命周期
- swift算法手记-7