版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
本地版本控制系统
集中化的版本控制系统 (CVCS)
分布式版本控制系统 (DVCS)
Git 只关心文件数据的整体是否发生变化,而大多数其他 系统则只关心文件内容的具体差异
对于任何一个文件,在 Git 内都只有三种状态:已 提交(committed),已修改(modified)和已暂存(staged)
已提交表示该文件已经被安全地保存在 本地数据库中了;
已修改表示修改了某个文件,但还没有提交保存;
已暂存表示把已修改的文件放 在下次提交时要保存的清单中。
git config --list 查看以后的配置信息
git config --global user.name **** 进行配置全局信息
git config user.name 查看具体的配置信息
git init 对本地项目进行初始化
git clone git地址 从仓库中克隆一个git项目到本地
git clone git地址 文件夹名a 从仓库中克隆一个git项目到本地文件夹a
git status 查看本地文件的状态
git add 文件名 将文件加入跟踪范围
.gitignore 文件,显示将要忽略跟踪的文件列表
*.sql # 此为注释 – 将被 Git 忽略 # 忽略所有 .a 结尾的文件 *.a # 但 lib.a 除外 !lib.a # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO # 忽略 build/ 目录下的所有文件 build/ # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt # ignore all .txt files in the doc/ directory doc/**/*.txt
git diff 查看修改后的文件和暂存区域的文件差异
git diff --cached 查看 暂存区域和修改后的文件差异
上面的两个比对 谁和谁比对 顺序不一样
git commit 将本次暂存区域的文件进行提交
git commit -m "填写提交时的说明内容"
git commit -am "填写提交时的说明内容" 这样的话,会跳过将文件保存到暂存区域这一动作,即git add动作,直接将修改的文件提交了
-------------
git rm 文件名 提交之后,就可以将文件从跟踪清单中删除
如果是简单的 rm 文件之后,状态是未加入暂存区域,在运行git rm之后,就加入了暂存区域
-------------
如果直接从跟踪清单中的文件,列为不跟踪,也就是状态变为未添加暂存状态,运行 git rm --cached 文件名
git mv 旧文件名 新文件名 修改文件名称,状态为暂存区域,等待提价
git log 查看提交历史记录
git reset HEAD 文件名 将暂存的文件取消暂存
git checkout -- 文件名 取消对文件的修改(在source Tree中丢弃文件即可)
git remote 查看当前远程仓库的别名(如git clone 下一个仓库时会有,如果本地初始化的话,默认没有)
git remote show 远程仓库名 查看远程仓库的信息
git remote rename 旧别名 新别名 远程仓库别名更改
git remote rm 别名 删除本地的远程仓库别名
git fetch 远程仓库别名 从远程仓库抓取到本地没有的数据,也就是抓取远程仓库的更新数据,不会自动合并,需要自己手动合并等操作数据
git push 远程仓库名 本地分支 将数据推送到远程仓库
git branch 列出分支列表信息
git branch 分支名 新建一支分支
git checkout 分支名 切换到某一只分支
上面两个命令可以用一条命令完成 git checkout -b 分支名
在某个分支上,将某个分支合并进来 get merge 分支名
git branch -d 分支名 删除某个分支
git branch --merged 查看已经合并的分支
git branch --no-merged 查看尚未合并的分支