代码拉取完成,页面将自动刷新
同步操作将从 廖雪峰/learngit 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
貌似都用英语表达谢意。。。 英语太菜了。。。
花了大概3天左右的时间练习完这个教程,廖老师写的教程确实不错。。。
点个赞
顺便带上一个粗糙的笔记。 用的马克飞象,跟markdown差不多。
============================================================
#《Git 教程》 廖雪峰
[原文地址][1]
**注意事项** :
- **中文目录**:如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
- **管理范围**:所有的版本控制系统,其实只能跟踪文本文件的改动,比如 TXT 文件,网页,所有的程序代码等,Git也不例外。而图片、视频这些二进制文件,没法跟踪文件的变化,只能把二进制文件每次改动串起来。 Microsoft 的 Word 格式是二进制格式。所以也没法弄。
- **其他**:千万不要使用 Windows 自带的记事本编辑任何文本文件,原因是 Microsoft 开发记事本的团队,在每个文件开头添加了 0xefbbbf(十六进制)的字符。
- **分支管理策略**:Git 默认会用 `Fast forward` 模式,这种模式下,删除分之后,会丢掉分支信息。禁用 `Fast forward`模式,就能看到分支信息。`git merge --no-ff -m "说明" <分支名称>` `--no-ff` 表示禁用 `Fast forward`。
------------------------------
[TOC]
##Git的优势
- 在本地工作完全不用考虑远程库的存在,svn在没有联网时是拒绝干活的。有网络的时候,再把本地库提交推送以下就完成了同步。
##Linux命令
- mkdir:创建目录
- cd:
- pwd:显示当前目录
##Git 命令
| 命令 | 说明 |
| :------ | :-------------- |
|git init | 初始化 |
|git add `<file>` | 添加文件到仓库 `文件必须在仓库目录下,可反复多次使用,添加多个文件` |
|git commit -m '' | 本次提交的说明 |
|git status | 工作区的状态 |
|git diff HEAD -- `<file>` | 查看工作区与版本库里最新版本的区别`HEAD表示当前版本` |
|git reset --hard commit_id | 回退到历史版本 |
|git log | 查看`提交`历史 |
|git reflog | 查看`命令`历史 |
|git checkout -- `<file>` | 丢弃工作区的修改 |
|git rm `<file>` | 删除 |
|||
|git push | 把当前分支`master`推送到远程仓库 |
|git push -u origin master | 第一次推送 master 分支的所有内容 |
|git push origin `【tagname | --tags】 后者表示推送所有标签`) | 推送标签到远程库 |
|git push origin :refs/tags/`<tagname>` | 可以删除一个远程标签 |
|||
|git remote add ...`百度` | 关联远程库 |
|git lone `https://github.com/jiangkui/gitskills2`| 克隆仓库到本地,Git支持多种协议,包括`https`,但通过 `ssh` 支持的原生 `git`协议速度最快|
|||
|git branch | 查看分支 |
|git branch `<name>` | 创建分支 |
|git branch -d `<name>` | 删除分支 |
|git branch -D `<name>` | 强行删除没有合并过的分支 |
|git branch --set-upstream `本地分支名称` origin/`远程分支名称` | 建立本地分支和远程分支的关联 |
|||
|git checkout `<name>` | 切换分支 |
|git checkout -b `<name>` | 创建+切换分支 |
|git checkout -b `本地分支名称` origin/`远程分支名称` | 在本地创建和远程对应的分支(`本地分支名称与远程分支名称最好一致`) |
|git merge `<name>` | 合并某分支到当前分支 |
|git log --graph | 看到分支合并图 |
|git stash | 存储当前修改的内容 |
|git stash list | 查看存储的工作现场 list |
|git stash pop | 取出并删除存储的第一个内容 |
|git stash apply | 恢复存储的内容但不删除 |
|git remote -v | 查看远程库信息 |
|git push origin `分支名称` | 从本地库推送分支 |
|git pull | 抓取远程的新提交 |
|git tag `<name>` `[版本号,默认 HEAD]` | 用户新建一个标签 |
|git tag -a `<tagname>` -m `blablabla` | 指定标签信息 |
|git tag | 查看所有标签 |
|git tag -d v0.1| 删除标签|
##名词概念
**工作区**:git项目里,电脑能看到的目录(文件夹)。
**版本库**:工作区有一个隐藏目录`.git`,这个不算工作区,是Git 的版本库。
git 的版本库里存了很多东西,其中最重要的就是 stage(或者叫 index)的暂存区,还有Git 为我们自动创建的第一个分支`master`,以及指向`master`的第一个指针叫`HEAD`。
![Alt text](./1428395768401.png)
在向Git 版本库里添加的时候,分两步:
第一步用`git add`把文件添加进去,实际上把文件修改添加到暂存区;
第二步用`git commit`提交,就是把暂存区的所有内容提交到当前分支。
`暂存区是Git 非常重要的概念,弄明白了暂存区,就弄明白了Tig的都很多操作到底干了什么。`
每次修改,如果不add到暂存区,那就不会加入到 `commit`中。
[1]:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
============================================================
jiangkui 20115-04-09
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。