Git库中由三部分组成
Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。
1) 工作目录:用户本地的目录;
2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。
3) 仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本在进行一次更新。
Git命令
取得Git仓库
初始化一个版本仓库
- mkdir projectcode # 创建项目目录
- cd projectcode # 进入到项目目录
- git init # 初始化 git 仓库。此命令会在当前目录新建一个 .git 目录,用于存储 git 仓库的相关信息
Clone远程版本库
- git clone -b workspace/projectcode <a target="_blank" href="mailto:git@xxxx.git">git@xxxx.git</a>
设置添加远程版本库origin,语法为 git remote add [shortname] [url]
- git remote add origin <a target="_blank" href="mailto:git@xxxx.git"><span style="background-color:#f0f0f0">git@xxxx.git</span></a>
查看远程仓库
- git remote -v
提交你的修改
将当前目录修改添加到 git 仓库(暂存区,)中, 使用 git add -A 则是添加所有改动的文档
- git add .
如果你自动追踪文件,包括你已经手动删除的,状态为Deleted的文件
- git add -u
提交你的修改
- git commit –m "提交说明"
提交从本地回传到仓库,回传到推送你的更新到远程服务器,语法为 git push [远程名] [本地分支]:[远程分支]
- git push origin master
查看文件状态
- git status
跟踪新文件
- git add readme.txt
从当前跟踪列表移除文件,并完全删除
- git rm readme.txt
仅在暂存区删除,保留文件在当前目录,不再跟踪
- git rm –cached readme.txt
重命名文件
- git mv reademe.txt readme
查看提交的历史记录
- git log
修改最后一次提交注释的,利用–amend参数
- git commit --amend
忘记提交某些修改,下面的三条命令只会得到一个提交。
- git commit –m "add readme.txt"
- git add readme_forgotten
- git commit –amend
假设你已经使用git add .,将修改过的文件a、b加到暂存区
现在你只想提交a文件,不想提交b文件,应该这样
- git reset HEAD b
取消对文件的修改
- git checkout –- readme.txt
基本的分支管理
创建一个分支
- git branch branchcode
切换工作目录到branchcode
- git chekcout branchcode
将上面的命令合在一起,创建branchcode分支并切换到branchcode
- git chekcout –b branchcode
合并branchcode分支,当前工作目录为master
- git merge branchcode
合并完成后,没有出现冲突,删除branchcode分支
- git branch –d branchcode
拉去远程仓库的数据,语法为 git fetch [remote-name]
- git fetch
fetch 会拉去最新的远程仓库数据,但不会自动到当前目录下,要自动合并
- git pull
查看远程仓库的信息
- git remote show origin
建立本地的dev分支追踪远程仓库的develop分支
- git checkout –b dev origin/develop