参考资料:

深入浅出Git教程(转载) - 小奔的早晨 - 博客园

1,前文。

       Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

2,基本linux命令

1,cd:改变目录

2,cd ..:回退到上一个目录,直接cd是进入默认目录

3, cd ~/:切换到默认主目录指的是C:\Users\administrator

4,ls(ll):都是列出当前目录中的所有文件,只不过ll列出的内容更为详细,ls -a :查看当前目录下所有的文件,包含隐藏的文件

5,pwd:显示当前所在的目录路径。

6,touch:新建一个文件如touch index.js就是在当前目录下新建一个index.js文件

7 ,echo "这是文件2" >> file2.txt:创建文件file2.txt 并编辑内容为“这是文件2”

8,rm:删除一个文件,rm index.js 就是将当前目录下的index.js删除

9,mkdir:新建一个目录,即新建一个文件夹

10,rm-r:删除一个文件夹,rm -r src 删除文件夹src

11,mv:移动文件,mv index.js src index.js是需要移动的文件,src是目标文件夹

12,reset:初始化终端/清屏

13,history:查看命令历史

14,cat :查看文件内容,cat filename 查看fileName内容

15,help:帮助

16,exit:退出

14,#:注释

3,git命令

1,查看配置 git config -l,
	git config --system --list:查看系统(system级别)配置。
	git config --global --list:查看全局用户(global级别)配置,例如查看全局用户与email
    git config --local  --list:查看当前(local级别)配置
    Git相关的配置文件路径:
	1,D:\Program Files\Git\etc\目录下gitconfig文件:git安装目录下的config --system 系统级 
	2,C:\Users\administrator\目录下的.gitconfig文件: 当前登录用户的配置 --global级别
	3,位于.git 目录下的config文件保存了当前配置---Local级别
	优先级:System < global < local

2,添加配置(必须配置不配置无法推送,该记录保存至C:\Users\lizhigang\目录下的.gitconfig文件)
	git config --global user.name lingxiao
	git config --global user.email lizhigang988@163.com

3,删除配置
	git config [--global|--system|--local] --unset section.key
	#例如,删除当前用户
	git config --global --unset user.name  

4,设置git仓库
   git init 将当前文件夹设置为仓库

5,查看git文件状态
   git status filename

6,将文件添加到暂存区
   git add filename,可使用通配符 例如git add *.txt 表示将该目录下的所有txt提交到暂存区,例如git add . 将该目录的文件提交到暂存区,其中.表示当前目录

7,提交的历史记录
   git log ,键入q键退出该日志界面

8,修改的详细记录
  git reflog,键入q退出该日志界面

9,提交重置操作
  git reset --hard id
例如:
a0bd591 (HEAD -> master) HEAD@{0}: commit (amend): some fix3
44003e0 HEAD@{1}: commit (amend): some fix3
d6d7fac HEAD@{2}: commit (amend): some fix2
22f409d HEAD@{3}: reset: moving to 22f409d7f7d0749455107555c084e0a9e04da5d5
回滚到fix2操作:
$ git reset --hard d6d7fac
HEAD is now at d6d7fac some fix2

git reset :回退 有三个参数参数
	soft : 回退到某一个版本,保留工作区与暂存区。
	hard :回退到某一个版本,不保留工作区也不保存暂存区。
	mixed:回退到某一个版本,只保存工作区内容不保存暂存区内容
   使用例子:git reset soft 版本Id

10,查看工作区,暂存区,本地仓库之间的差异
  git diff

12,工作区与暂存区同时删除文件
  git rm filename :例如git rm file2.txt,删除文件file2.txt,删除后需要git commit 

13,删除暂存区保留工作区文件(即取消git对该文件的跟踪)
  git rm --cached filename

14,取消暂存区文件
  git restore --staged filename

15,从远程仓库中克隆代码到本地仓库
  git clone url

16,从本地仓库检出一个仓库分支然后进行赋值修订
  git checkOut filename;从最近一次暂存取值
  git checkout [id,提交仓库的id] filename;从id对应的提交那次取值

17,将代码提交到暂存区。
 git add filename

18,将暂存区文件提交到本地仓库。
 git  commit filename -m “消息内容”

19,从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作的比较少。
 git fetch url

20,从远程库拉取到本地库,自动进行合并(merge),然后放在工作区,相当于fetch+merge
 git pull url

21,修改完成后,需要和团队共享代码时,将代码推送到远程仓库。
 git push url


4,git的基本认识

git流程图

git文件组成图

  •  Directory:使用Git管理的一个目录,也就是一个仓库,包含了工作空间和git的管理空间。
  • WorkSpace:需要通过git进行版本管理的目录和文件,这些目录和文件组成了工作空间。
  • .git:存放Git管理信息的目录,初始化仓库的时候自动创建
  • Index/Stage:暂存区,或者称之为待提交区,在提交进入Local Repository之前,可以将所有的变更放入暂存区
  • Local repository:本地仓库,一个存放在本地的版本库;HEAD存放当前的开发分支(branch)
  • Stash:隐藏,是一个工作状态的保存栈,用于保存和回复workspace中的临时状态

Git本地有三个工作区域:工作目录(Working Directory),暂存区(Stage/Index),资源库(repository或Git Directory)。如果加上远程的Git仓库(Remote Directory)既可以分为四个区域。

Workspace:工作区,平时存在项目代码的地方

Index/Stage:暂存区,用于临时存放改动,事实上它只是个文件,保存即将提交到文件列表信息

Repository:仓库区(本地仓库),存放数据的位置,这里有提交的所有版本的数据,其中Head指向最新放入仓库的版本

Remote:远程仓库,托管代码的服务器。

5,创建本地仓库

创建本地仓库的方法有两个:一种是创建全新的仓库,另一种是克隆远程仓库
1,创建全新的仓库,需要在git管理的项目的根目录下执行
		#在当前目录下创建一个新的git仓库
		git init 

2,克隆远程目录
		#克隆一个项目和他的整个代码历史(版本信息)
		git clone [url]

6,文件的四种状态

Untracked:未跟踪,此文件在文件夹,但并没有加入Git库,不参与版本控制,通过Git add 状态变为 Staged,使用git rm --cached filename 移除跟踪(本质是将文件从暂存区删除但是保留工作区)

Unmodify:文件已入库,未修改,即版本中的快照与文件夹中一致。这种文件有两个去处,如果它被修改状态就变为Modified。如果使用git rm 则移除版本状态变为Untracked

Modidy:文件已修改,仅仅是修改,并没有进行其他操作,这个文件有两个去处,通过git add可进入 暂存 staged状态,使用Git checkout 则丢弃修改返回unmodity状态,这个Git checkout 即从仓库取出文件,覆盖当前修改,

Staged:暂存状态,执行git commit 则将修改同步到库中,这是库中的文件和本地文件又变为一致,文件为Unmodify状态,执行git reset HEAD filename 取消暂存,文件状态为Modifyed

7,忽略文件

有些时候不想将某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等,可通过创建.gitignore文件解决。

在主目录下建立".gitignore"文件,此文件有如下规则
1,忽略文件中空行或以#开始的行
2,可以使用linux通配符。例如*代表任意多个字符,?代表一个字符,[abc]代表可选字符范围,大括号{string1,string2}代表可选的字符串等
3,如果名称的最前面有一个!,表示例外规则,将不被忽略。
4,如果名称的最前面是一个路径分隔符/,表示要忽略的文件在此目录下,而子目录的文件不忽略
5,如果名称的最后面是一个路径分隔符/,表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或文件都忽略)

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部