赞
踩
git工作区域
三个区域都是在本地
工作区就是本地的工作目录,就是本地仓库,就是有.git的文件夹(即有,git文件夹的目录才算是一个git目录,也即是一个git工作区)。用来新建,修改我们的代码
.git目录就是本地仓库,里面保存着我们git commit 提交的东西,就是git的版本库
暂存区(英文叫 stage 或 index)是存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
向git仓库添加文件的流程
git status 可以看当前文件的状况,是在工作区,还是暂存区等等
git基本信息设置(安装完git之后设置)
设置用户名
git config --global user.name “name”
设置用户邮箱
git config --global user.email "email"
这两个设置在github主页显示谁提交了文件
用户名和邮箱地址是本地git客户端的一个变量,每次commit都会用用户名和邮箱纪录。
github的contributions统计就是按邮箱来统计的。
查看当前配置
git config --list
git初始化
初始化一个新的git仓库
新建文件夹之后
git init touch .gitignore之后文件夹中就会生成.git文件夹,用来存储仓库所有数据信息的
git init就是把一个文件夹变成了git仓库
git init就是创建本地仓库
但是,如果我们有一个目录,里面已经有一些文件了,此时我们git init, 把当前目录初始化成git仓库,此时git status,所有文件都还会使untracked的状态,git init的时候不会给你自动提交,需要你手动add想追踪的文件。
同理,git可以手动选择想追踪哪些文件,不会直接当前整个目录全给你追踪了
用git status查看当前状态,显示
git本地操作
向git仓库添加文件 (添加要让被git跟踪的文件)
新建文件
现在的git status
显示有一个untracked file,a1.txt
将文件提交到暂存区
git add a1.txt
之后的状态变成了绿色
将暂存区文件添加到git仓库(本地)
git commit -m 'add a1.txt'
git commit -m "message"
更新被追踪的文件
如果我们修改了a1.txt文件的内容
此时git status就会变成 “modified”
要更新a1.txt这个文件还是用git add就好了,会把原来的版本覆盖掉
git add a1.txt
提交到git仓库还是 git commit,也是会覆盖之前的文件
git不再追踪某个文件
git rm --cached readme1.txt #删除readme1.txt的跟踪,并保留在本地。 git rm --f readme1.txt #删除readme1.txt的跟踪,并且删除本地文件。然后git commit 即可。但是git status查看状态时还是会列出来
每次使用git status 查看状态时总是会列出被跟踪的文件,可以通过 .gitignore文件来达到目的
删除被git追踪的文件
例如a1.txt已经提交到git仓库中了,而现在我们想删掉它
首先,直接在计算机中删除要删除的文件
rm a1.txt
然后从git暂存库中删除文件
git rm a1.txt
然后提交到git仓库,就可以了
git commit -m '第一次通过git删除仓库文件'
git回退到以前的版本
# 查看操作日志 git log 如果觉得显示的字串太长可以 git log --oneline
#回退到某个以前的版本 git reset --hard 14d86c9fc652b66be6e442af2b23e60b7cb64d72--hard是修改版本库,修改暂存区,修改工作区
注意,回退到以前的版本后,比该版本更新的版本就都不可见了,所以在切换之前要记好最新的这些版本的版本号,通过版本号还可以切回去。切回去依旧是git reset这个命令
git分支/branch管理
分支可以理解为独立开发功能的小房间
默认情况下当初始化一个版本库(初始化一个文件夹)的时候,会生成一个master分支,即主分支。一般主分支里面都是最新,最完善的代码
在一个分支新建分支的时候,就相当于把原来分支里面的东西拷贝了一份到新分支
新建分支
git branch 分支名 如 git branch dev查看当前分支
git branch
星号绿色表示的是当前所在的分支
切换分支
git checkout dev
你在分支里面可以修改,可以commit,但是都不影响其他分支的内容
你在dev分支中修改了文件的内容,如果没有commit的话,切换回master分支还是可以看到的,但是当你commit之后,master就还是以前没有修改的状态,此时你切换到master,现实文件夹中就显示没有修改的状态,你切换到dev,现实文件夹中就显示已经修改的状态
合并分支
我们在分支当中完善了某些代码之后要和master分支进行合并
我们想要master分支是最完善的,想master合并dev分支,就切换到master分支下,
git merge dev
如果master新建了dev和dev2分支
dev有改动,dev2也有改动
dev先合并到了master中,然后此时的master和dev2一开始继承的那个master已经不一样了,所以版本相当于是差了2个,此时合并就会有冲突
会报conflict,并且状态变成了master|MERING
此时看git status
然后我们编辑有冲突的这个文件2.py
head是master当中的修改的
遇到这种冲突问题,和不同版本的作者协商要留下哪些,都留下的话就把<<<<<、>>>>>、======删掉了就好了
然后再add,commit
这时就合并成功了
就保留了2个版本的内容
在github上也可以创建分支
建立的时候只有一个
直接输dev可以创建dev分支
但是提交的时候本地分支和提交的分支要对应,要同名。本地是master远程也要是master,本地是dev远程也要是dev
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。