git核心框架是由git维护的三棵树组成的,这三棵树分别是:工作区域 暂存区域 Git仓库
工作区域 (Working Directory) 就是你平时存放代码的地方
暂存区域 (Stage) 用于临时存放改动,事实上它只是一个文件,保存即将提交的文件列表信息。
Git 仓库(Resository) 就是安全存放数据的位置,这里边有你提交的所有版本的数据。其中
,HEAD指向最新放入仓库的版本(这第三棵树,应该是Git仓库中HEAD指向的版本)。
Git的工作流程是:
1.在工作目录中添加修改文件
2.将需要进行版本管理的文件放入暂存区域
3.将暂存区域的文件提交到Git仓库中。
Git管理的文件的三种状态已修改(modified) 已暂存(Staged)和已提交(committed)
分别对应以上的三个流程
1.了解系统环境变量
git config
2.设置身份
git config --global user.name ....
git config --global user.email ....
git config --global color.ui auto
3.设置编辑器
git config -gobal core editor emacs
4.设置你的比较工具
git -global merge tool vimdiff
5.检查你的配置
git config -list
6.帮助
git help <verb>
git <verb> -help
remote repository 远程服务器仓库
local resitory 本地仓库 objects
stage area 缓冲区 index
work area 工作区间
ehco "hello" >> hello 新建一个文本输入hello
git add . 将文件从工作区转到缓冲区
git commit hello -m "init hello" 加注释的提交
7.建立项目的方式
方法1:
进入文件夹
git init 初始化一个版本仓库
通常会生成.git隐藏文件夹
在git中 我们将.git目录下的内容称为“附属于该仓库的工作树”,文件的编辑等操作在工作树中进行,
然后记录到仓库中,以此来管理文件的历史快照。如果想将文件恢复先前的状态,可以从仓库中调取之前的
快照,在工作树中打开。
方法2:
git clone git://github.com/git/hello-world.git从远程仓库下载代码
8.显示
git remote 显示远程仓库的名字
git remote -v 显示远程仓库的地址
9.添加
git add 是将文件添加到 Stage中,这个区域是提交之前的一个临时区域
git add *c添加扩展名为c的所有文件
git add README 添加README文本(其实是将文件纳入版本控制)
git commit -m "initial project version"提交并添加注释
git status 查看当前所有工作区间的状态,这是一个十分有用的命令
echo "bin.dll" >>bin.gitignore 提交时会自动忽略该文件
10.比较
git diff (--staged) 比较workspace VS staged .
git diff --cached 比较 staged VS local repo
11.删除
git rm 删除掉工作区的内容
git checkout -- 文件名 可以找回原来删除的内容 撤销上一次的修改(工作区)[--不写是创建分支]
git rm
git -a -m "" 提交后git checkout找不回原来的内容
git mv bin.dll
git -a -m ""
添加删除等操作都需要提交以后才能真实的对仓库生效
12.查看
cat文件名查看文件内容
git whatchanged 查看当前的一些改变
----------------------------------------------------------------------------
第二部分 共享及更新项目
1.几个概念
1) clone 这是当我们本地没有该项目时我们第一次从远程仓库中将代码完整的下载到本地
2) pull 这是当我们本地仓库和远程仓库有不同的时候将部分下载和主版本合并
3) push 将本地仓库的内容推送到远程仓库
4) fetch 从远程仓库下载内容不与主版本合并二十创建一个分支
2.拉
git fetch origin 没有提示变化,主要是因为创建了新的分支
git pull origin
git push origin master 当本地仓库有修改,和远程仓库有差异的时候需要push来让本地仓库和远程的仓库保持一致
这里的master是指具体的哪一个分支
git format -patch orgin/master 给我们本地的文件打补丁,由于我们没有权限修改远程仓库,所以这样会把补丁信息通过邮件的方式发送给远程管理员,管理员手动的将补丁添加到工程中
ps:本地的仓库一旦建好,就会产生一个master的分支,远程的仓库默认为origin
3.查看所处的分支
git branch
4.新建一个分支
git branch xxxx 新建一个名为xxx的分支
5.切换一个分支
git checkout xxx 切换到xxx分支
6.查看分支差异
git show -branch
git diff master xxx 比较两个分支的差异
7.合并分支
方法1:
git merge "merge branch1 to master" HEAD branch1 将branch1分支 合并到当前主分支中,合并日志为merge branch1 to master
注意输入此命令的时候,要切换回主分支
方法2:
git checkout master
git pull branch1
8.添加版本标识
git tag -a Beta1 -m "make beta1"
将当前所有的文件标识为beta1 便于以后的版本回溯
最重要的三类操作:
1.本地工作区的操作以及本地工作区和本地仓库之间的操作(增删改提交)
2.本地仓库和远程仓库的操作
3.分支的建立,分支合并,分支维护
以上内容参考小甲鱼Git教程 某播客视频 以及GitHub入门与实践的书,
说实在话入门git实在不容易,班上的大神都不教,第一次看git入门实践
的书觉得晦涩难懂,后来直到入手了视频后看了部分讲解然后去看书,动手
实践后,才觉得有一些收获,还有对于工作区的概念比较重要,希望各位同
学好好理解,初步的操作这一些就可以了,至于剩下的部分,我在后面的文
章中加以补充。
工作区域 (Working Directory) 就是你平时存放代码的地方
暂存区域 (Stage) 用于临时存放改动,事实上它只是一个文件,保存即将提交的文件列表信息。
Git 仓库(Resository) 就是安全存放数据的位置,这里边有你提交的所有版本的数据。其中
,HEAD指向最新放入仓库的版本(这第三棵树,应该是Git仓库中HEAD指向的版本)。
Git的工作流程是:
1.在工作目录中添加修改文件
2.将需要进行版本管理的文件放入暂存区域
3.将暂存区域的文件提交到Git仓库中。
Git管理的文件的三种状态已修改(modified) 已暂存(Staged)和已提交(committed)
分别对应以上的三个流程
git是对于代码维护的操作,而github是提供git服务仓库的地方,要进行git操作,我们首先需要去github
上创建一个账号。创建完账号后,可以在桌面上的bush上进行操作。这是一个类linux终端的shell,所以
会一点点linux命令的同学可能会轻松一点。
1.了解系统环境变量
git config
2.设置身份
git config --global user.name ....
git config --global user.email ....
git config --global color.ui auto
3.设置编辑器
git config -gobal core editor emacs
4.设置你的比较工具
git -global merge tool vimdiff
5.检查你的配置
git config -list
6.帮助
git help <verb>
git <verb> -help
remote repository 远程服务器仓库
local resitory 本地仓库 objects
stage area 缓冲区 index
work area 工作区间
ehco "hello" >> hello 新建一个文本输入hello
git add . 将文件从工作区转到缓冲区
git commit hello -m "init hello" 加注释的提交
7.建立项目的方式
方法1:
进入文件夹
git init 初始化一个版本仓库
通常会生成.git隐藏文件夹
在git中 我们将.git目录下的内容称为“附属于该仓库的工作树”,文件的编辑等操作在工作树中进行,
然后记录到仓库中,以此来管理文件的历史快照。如果想将文件恢复先前的状态,可以从仓库中调取之前的
快照,在工作树中打开。
方法2:
git clone git://github.com/git/hello-world.git从远程仓库下载代码
8.显示
git remote 显示远程仓库的名字
git remote -v 显示远程仓库的地址
9.添加
git add 是将文件添加到 Stage中,这个区域是提交之前的一个临时区域
git add *c添加扩展名为c的所有文件
git add README 添加README文本(其实是将文件纳入版本控制)
git commit -m "initial project version"提交并添加注释
git status 查看当前所有工作区间的状态,这是一个十分有用的命令
echo "bin.dll" >>bin.gitignore 提交时会自动忽略该文件
10.比较
git diff (--staged) 比较workspace VS staged .
git diff --cached 比较 staged VS local repo
11.删除
git rm 删除掉工作区的内容
git checkout -- 文件名 可以找回原来删除的内容 撤销上一次的修改(工作区)[--不写是创建分支]
git rm
git -a -m "" 提交后git checkout找不回原来的内容
git mv bin.dll
git -a -m ""
添加删除等操作都需要提交以后才能真实的对仓库生效
12.查看
cat文件名查看文件内容
git whatchanged 查看当前的一些改变
----------------------------------------------------------------------------
第二部分 共享及更新项目
1.几个概念
1) clone 这是当我们本地没有该项目时我们第一次从远程仓库中将代码完整的下载到本地
2) pull 这是当我们本地仓库和远程仓库有不同的时候将部分下载和主版本合并
3) push 将本地仓库的内容推送到远程仓库
4) fetch 从远程仓库下载内容不与主版本合并二十创建一个分支
2.拉
git fetch origin 没有提示变化,主要是因为创建了新的分支
git pull origin
git push origin master 当本地仓库有修改,和远程仓库有差异的时候需要push来让本地仓库和远程的仓库保持一致
这里的master是指具体的哪一个分支
git format -patch orgin/master 给我们本地的文件打补丁,由于我们没有权限修改远程仓库,所以这样会把补丁信息通过邮件的方式发送给远程管理员,管理员手动的将补丁添加到工程中
ps:本地的仓库一旦建好,就会产生一个master的分支,远程的仓库默认为origin
3.查看所处的分支
git branch
4.新建一个分支
git branch xxxx 新建一个名为xxx的分支
5.切换一个分支
git checkout xxx 切换到xxx分支
6.查看分支差异
git show -branch
git diff master xxx 比较两个分支的差异
7.合并分支
方法1:
git merge "merge branch1 to master" HEAD branch1 将branch1分支 合并到当前主分支中,合并日志为merge branch1 to master
注意输入此命令的时候,要切换回主分支
方法2:
git checkout master
git pull branch1
8.添加版本标识
git tag -a Beta1 -m "make beta1"
将当前所有的文件标识为beta1 便于以后的版本回溯
最重要的三类操作:
1.本地工作区的操作以及本地工作区和本地仓库之间的操作(增删改提交)
2.本地仓库和远程仓库的操作
3.分支的建立,分支合并,分支维护
以上内容参考小甲鱼Git教程 某播客视频 以及GitHub入门与实践的书,
说实在话入门git实在不容易,班上的大神都不教,第一次看git入门实践
的书觉得晦涩难懂,后来直到入手了视频后看了部分讲解然后去看书,动手
实践后,才觉得有一些收获,还有对于工作区的概念比较重要,希望各位同
学好好理解,初步的操作这一些就可以了,至于剩下的部分,我在后面的文
章中加以补充。