说明
整理一下git的使用和重要概念作为学习总结,欢迎找bug,提建议。参考廖雪峰的git教程
创建版本库
git init 创建新的版本库
- 可以先添加README、LICENSE,创建.gitignore
- git 忽略 .gitignore内文件
从远程库克隆
git clone http(git)://server-path/repo-name.git
- 将远程库拷贝到本地
- https / ssh 协议均可 https在push时需要输入用户名和密码
关联一个远程库
git remote add original git@server-name:path/repo-name.git
- github上已有仓库;
- 本地建立好了仓库;
- 该命令可以关联远程仓库与本地仓库
修改添加删除文件
git add file / git rm file / git commit -m “”
- 修改、添加文件file后 - git add file
- 删除文件file - git rm file
- 提交修改 - git commit -m “注释 说明”
- commit 后在该分支下完成了一次提交
push/pull
git push original local branch[:remote branch]
git pull original remote branch[:local branch]
- 可用 -u 指定original为默认主机
- 只推送/拉取指定分支 全部分支可用–all
- 默认目的分支(冒号后)是与源分支(冒号前)有追踪关系(通常同名)。目的分支不存在可以创建,源分支必须存在
概念
- 工作区 - 工程目录内可见的文件、目录、写代码的地方
- 版本库 - 工程目录下隐藏的.git目录 包括暂存区与提交过的各个版本
- 版本 - 每次commit后产生一个新的版本 push/pull可以将本地版本提交到远程/远程版本拉到本地
- 暂存区 - 存放在.git中,add后的文件存放在暂存区中,commit后从暂存区提交到当前分支
- HEAD - 当前分支中指向当前版本的指针 HEAD^ 上一个
- 分支 - 按序提交的多个版本组成一个分支,可以同时存在多条分支,也可以复制某个版本创建一个新分支
查看工作区、暂存区的状态、区别
git status
git diff A B
撤销
- 工作区内撤销(没有add)
git checkout – file。
- 暂存区撤销(add但没有commit)
第一步用命令git reset HEAD file,就回到了1,第二步按1操作。
file 代表全部文件,可以替换为某个文件只撤销该文件- 版本回退(commit 但没push)
* HEAD指向的版本就是当前版本,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。(HEAD^)
* 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
* 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
分支管理
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
建议合并分支前用 vimdiff 先解决可能存在的冲突