1 Star 0 Fork 469

Baconcy/learngit

forked from 廖雪峰/learngit 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
jiangkui.txt 5.03 KB
一键复制 编辑 原始数据 按行查看 历史
ysysyys 提交于 2017-07-25 10:33 . clean part (#2195)
貌似都用英语表达谢意。。。 英语太菜了。。。
花了大概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
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Baconcy/learngit.git
git@gitee.com:Baconcy/learngit.git
Baconcy
learngit
learngit
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385