目录
概念
Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。
到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。
他们对新的系统制订了若干目标:
速度
简单的设计
对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
完全分布式
有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
工作流程
工作流程如下:
1.从远程仓库中克隆代码到本地仓库
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
常用命令
环境配置
设置用户信息
git config --global user.name “itcast”
git config --global user.email “hello@itcast.cn”
查看配置信息
git config --list
git config user.name
获取Git仓库
在本地初始化一个Git仓库
执行步骤如下:
-
在电脑的任意位置创建一个空目录(例如repo1)作为我们的本地Git仓库
-
进入这个目录中,点击右键打开Git bash窗口
-
执行命令git init
如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功
从远程仓库克隆
可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
命令形式为:git clone +远程Git仓库地址
本地仓库操作
git status | 查看文件状态 |
git status –s | 使输出信息更加简洁 |
git add + 文件名 | 将未跟踪的文件加入暂存区 |
git reset +文件名 | 将暂存区的文件取消暂存 |
git commit | 将暂存区的文件修改提交到本地仓库 |
git rm+文件名 | 删除文件 |
git log | 查看日志记录 |
将文件添加至忽略列表
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
远程仓库操作
git remote(已克隆状态查看) | 查看远程仓库 |
git remote -v | 查看详细远程仓库 |
git remote add +origin+ [url] | 添加一个新的远程 Git 仓库 |
git clone [url] | 远程仓库克隆 |
git remote rm origin | 从本地移除远程仓库的记录,并不会真正影响到远程仓库 |
git fetch | 从远程仓库获取最新版本到本地仓库,不会自动merge |
git pull | 是从远程仓库获取最新版本并merge到本地仓库 |
Git分支
git branch | 列出所有本地分支 |
git branch -r | 列出所有远程分支 |
git branch -a | 列出所有本地分支和远程分支 |
git branch 分支名 | 创建分支 |
git checkout 分支名 | 切换分支 |
git push prigin 分支名 | 推送至远程仓库分支 |
git +当前分支+要合并分支 | 合并分支 |
git branch -d 分支名 | 删除分支 |
git branch -D 分支名 | 强行删除分支 |