git基础(一)

git是什么?

分布式版本控制工具 (git) 
集中式版本控制工具 (svn..)

解决的问题:
	1. 项目模块分开开发,每个人开发完后的模块需要整个在一起形成一个完成的项目 ,借助git完成整和代码
	2. 项目开发是分版本的 (v1/v2....版本)git工具可以控制项目的版本,可以切换任意版本 适应当前需求 

git怎么学?

实验科学,做实验,练习

git区别于svn

1. 不管是git 还是svn都是版本控制工具 
	git能在本地(开发者)形成项目的版本控制 (分不式)不需要借助中央仓库
	svn不能在本地(开着者)形成项目的版本控制 (集中式),需要借助中央仓库才能形成版本控制
	
2. 不管是git和svn 如果要整合别人的代码,必须借助远程中央仓库 (对于git而言远程仓库github)

3. git中大部分的操作都可以‘后悔’ ,但是svn有些操作是不能‘后悔’

git 下载和安装

本地安装git环境: https://git-scm.com/
下载安装包 执行安装(傻瓜式的下一步)

查看git 版本 :
	git --version 
	git version 2.21.0 (Apple Git-122)	

git 操作:

git-bash 常用命令
  • pwd
  • ls
    • ls -a
  • cd
  • mkdir
  • clear
  • rmdir
    • 只能删除空目录
  • rm
    • rm 文件名
    • rm -rf 目录名
      • 注:很强大,可以删除非空目录,以及一些比较顽固的文件或者目录
1.如何让git 管理项目(test)
	mkdir test
	cd test
	git init 
		/*
			Initialized empty Git repository in /Users/xuanqiyan/Desktop/1812/git/test/.git/
		*/
	ll -a (a-->all )
		/*
			drwxr-xr-x  9 xuanqiyan  staff   288B  4 13 15:33 .git /隐藏文件夹 
			
		*/
2.告诉git你是谁
	git config --global user.name 'xuanqiyan'  (global 全局 ,以后计算机 新建别的仓库 都能使用这个name)
	git config --global user.email '17310920903@163.com'	  (global 全局 ,以后计算机 新建别的仓库 都能使用这个email)
	
	//查看配置列表项
	git config --list
3.如何不让git管理项目(test)
	rm -rf .git	
4.如何形成一个版本
	touch a.txt  新建文件
	echo  '1111' >> a.txt //向a.txt 文件中追加一行1111 (修改文件) 
	
	git add a.txt
	
	git commit -m '项目版本1'
	/*
		[master (root-commit) 52ed4d8] v1
		 1 file changed, 1 insertion(+)
		 create mode 100644 a.txt
	*/	
git 中的三个区域
	工作区
	暂存取
	对象区

实验一:形成初始版本

	mkdir test
	cd test
	git init 
	echo '1111' >> a.txt
	git status 查案git中文件的状态
		/*
			On branch master
			No commits yet  还没有任何的提交
			Untracked files:   tracked 追踪 untracked未追踪
			  (use "git add <file>..." to include in what will be committed) // 使用git add 将工作区的文件 添加到暂存区
				a.txt
			nothing added to commit but untracked files present (use "git add" to track)
		*/
	   
	git add .  //将a.txt从工作区添加到暂存区
	git status
		/*
			On branch master
			No commits yet  还没有任何的提交
			Changes to be committed: //使用commit 提交 形成一个版本
				// 使用 git rm --cached <file> 回退到 unstage(工作区)
			  (use "git rm --cached <file>..." to unstage)  //stage 暂存 unstage未暂存
				new file:   a.txt
		*/
	   
	//将暂存区a.txt撤销到工作区
	git rm --cached a.txt	 注意: 在第一次形成版本的时候 使用这个命名	
	git status
		/*
			On branch master
			No commits yet
			Untracked files:
			  (use "git add <file>..." to include in what will be committed)
				a.txt
			nothing added to commit but untracked files present (use "git add" to track)
		*/
	//将a.txt 从工作区 到暂存区
	git add .
	//将a.txt 从暂存区提交到对象区 commit (版本)
	
	git commit   // 打开一个vi 编辑器,编写版本说明  --> git commit -m '这是我的第一个版本'
		/*
			[master (root-commit) 1c54857] 这是我的第一个版本
			 1 file changed, 1 insertion(+)
			 create mode 100644 a.txt
			 
			  1c54857: 版本号 32位版本号的前7位
		*/
	   
	git log  查看所有版本的信息   
		/*
			commit 1c548574566c56ffb16eb447dd6c560fd731d741 (HEAD -> master)
			Author: xuanqiyan <17310920903@163.com> 作者
			Date:   Tue Apr 14 15:03:29 2020 +0800  日期
			
			    这是我的第一个版本  说明文件
			
			    dsdsadasdsada
			    dsadas
			    das
		*/

实验二:形成第二个版本

	touch b.txt
	echo 'bbbbb' >> b.txt
	
	git status
		/*
			On branch master
			Untracked files:
			  (use "git add <file>..." to include in what will be committed)
			
				b.txt
			
			nothing added to commit but untracked files present (use "git add" to track)
		*/
	git add .
	git status 
		/*
			On branch master
			Changes to be committed:
				//使用 git reset HEAD <file> 把 b.txt文件 从暂存区 撤销到工作区
			  (use "git reset HEAD <file>..." to unstage)
			
				new file:   b.txt
		*/
	//将暂存区的文件撤回到工作区
	git reset HEAD b.txt   //一旦形成版本后续的撤销 都要使用这个命令
	
	git add .
	git commit -m '这是第二个版本 '
		/*
			[master 1583335] 这是第二个版本
			 1 file changed, 1 insertion(+)
			 create mode 100644 b.txt
		*/
	git log 
		/*
			commit 15833356e023f8a14c1e7b95584b2a38447c4e71 (HEAD -> master)
				sha1 加密算法和md5  重点是为了产生随机字符串 而不是加密
				使用随机字符串标示一个版本 ,版本就不可能重复
			Author: xuanqiyan <17310920903@163.com>
			Date:   Tue Apr 14 15:18:11 2020 +0800
			
			    这是第一个版本
		*/

实验三: 查看提交日志的多种方式

	git log  查看所有日志
	git log -n 查看最近n次日志 
	git log --pretty=oneline 一行的形式查看日志 
		/*
			15833356e023f8a14c1e7b95584b2a38447c4e71 (HEAD -> master) 这是第二个版本
			1c548574566c56ffb16eb447dd6c560fd731d741 这是我的第一个版本
		*/
	git log --pretty=format:"%h - %an, %ar : %s" 
		/*
			1583335 - xuanqiyan, 8 minutes ago : 这是第一个版本
			1c54857 - xuanqiyan, 23 minutes ago : 这是我的第一个版本
		*/

实验四:邮箱账号设置 目的:为了以后在和github交互的时候 区分提交着的信息

	git config 
		/*
			 --global  1            use global config file  全局: 给整个计算机设置邮箱和账号  --》任何用户创建的git仓库都使用这个邮箱和账号
			 --system  2            use system config file  用户: 给当前用户设置邮箱和账号    --》用户新建的任何git仓库都使用这个邮箱和账号
			 --local   3            use repository config file 当前项目(仓库):            --》当前这个仓库设置邮箱和账号  
		*/
		优先级: 离仓库最近的设置生效 3 》 2 》 1
	
	//查看配置列表项
	git config --list

system 级别 查看config配置
在这里插入图片描述
local 级别 查看config配置
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值