欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

git常用命令解析

程序员文章站 2022-03-16 16:45:29
概念: 工作区(Working directory):将一个文件夹通过git init设置成一个git可以管理的文件夹(即:创建本地仓库)时,这个文件夹里的内容就是工作区。 版...
概念:
	工作区(Working directory):将一个文件夹通过git init设置成一个git可以管理的文件夹(即:创建本地仓库)时,这个文件夹里的内容就是工作区。

	版本库(repository):在工作区中,有一个.git文件夹,这个.git文件夹就是版本库。
		
	暂存区(stage/index):.git文件夹下的index文件就是暂存区,用来暂时存放工作区中修改的内容。


	.git目录中的文件:
		
		index		暂存区
		HEAD		指向当前分支的一个提交
		refs/		记录着每个分支指向的提交
		info/		指定本项目要忽略的文件
		logs/		记录着git的操作日志
		objects/	git对象库,用来存储各种创建的对象以及内容。

		
	
命令:
	设置git的用户名和邮箱:
		
		命令:git config

		1)设置 /etc/gitconfig文件,即操作系统上所有的用户都使用的配置文件:
			git config --system user.name "jxn"
			git config --system user.email "jxn@email.com"

		2)设置 ~/.gitconfig文件,即当前登录用户使用的配置文件:
			git config --global user.name "jxn"
			git config --global user.email "jxn@email.com"
		
		3)设置 repository/.git/config文件,即当前项目中使用的配置。注:必须先cd到一个git repository目录下,才能执行以下命令:
			git config user.name "jxn"
			git config user.email "jxn@email.com" 
		  或
			git config --local user.name "jxn"
			git config --local user.email "jxn@email.com"

		4)查看git用户名和邮箱:
			git config user.name
			git config user.email
			说明:
				1>如果是在某个git repository下使用该命令,则表示查看当前项目中使用的git用户,	查找顺序:.git/config --> ~/.gitconfig --> /etc/gitconfig
				2>如果不是在某个git repository下使用该命令,则表示查看当前登录用户使用的git用,	查找顺序:~/.gitconfig --> /etc/gitconfig
			
		说明:我们一般使用--global参数来设置git的用户名和邮箱。

		
	生成秘钥:
		ssh-keygen -t rsa -C "jxn@email.com"
	
	
	clone分支:
		使用http地址:
			git clone http://***.git
			# 参数:
			# 	git clone http://***.git			clone master分支
			# 	git clone -b 2.0.4 http://***.git 	clone 指定分支
		
		使用ssh地址:
			git clone git@127.0.0.1:***/***.git 	
			# 参数:
			#	git clone git@127.0.0.1:***/***.git 				端口为默认的22端口
			#	git clone ssh://git@127.0.0.1:39876/***/***.git 	端口为非标准的22端口

	
	查看分支:
		git branch
		# 查看当前分支
		# 参数:
		# 	git branch -r 查看远端所有分支
		# 	git branch -a 查看所有分支
		# 说明:
		#	* 表示当前所在分支

		
	删除分支:
		git branch -d 分支名称

	
	更新、提交、回退:

		git pull 
		# 更新本地代码(如果有冲突需要解决冲突)
		
		git commit –m 本次提交的说明 
		# 将添加到暂存区的修改提交到本地仓库。
		# 注意:idea等IDE工具在commit的时候,首先会将工作区的修改add到暂存区,然后再commit到本地仓库。
		
		git push
		# 将本地仓库中的修改push到远程仓库。
		
		git log
		# 查看所有人的提交日志
		# 参数:
		#	git log --graph				查看分支合并图
		#	git log --pretty=oneline	查看简易日志信息:版本号+提交说明
		
		git reflog
		# 查看自己执行过的所有命令
		
		git status
		# 查看当前状态:
		# 	如果发现红色文件,则表示该文件未进入暂存区。
		# 	如果发现绿色文件,则表示该文件已经add到暂存区,但是还没有commit。
		# 文件的三种状态:
		#	Untracked files:				工作区中未被跟踪的文件,一般是新建的文件。
		#	Changes not staged for commit:	修改后未add进暂存区的文件。
		#	Changes to be committed:		修改后并add进暂存区中的文件。
		
		git add		
		# 参数:
		#	git add .	将新增、修改的文件添加到暂存区,不包括删除的文件。
		# 	git add -u	将修改的文件添加到暂存区。
		# 	git add -a	将新增、修改、删除的文件添加到暂存区。
		# 说明:
		#	git add fileName	将指定的文件添加到暂存区。
		
		git diff
		# 参数:
		#	git diff 			比较 工作区和暂存区 之间的不同之处
		#	git diff --cached	比较 暂存区和版本库 之间的不同之处
		#	git diff HEAD 		比较 工作区和版本库 之间的不同之处
		
		git reset 版本号
		# 回退到指定的版本(通过git log可以查到版本号:commmit后的那串数字) 注:HEAD指向当前的版本(最近一次的提交),HEAD^指向上一个版本,HEAD^^指向上两个版本。
		# 参数:	
		# 	git reset --soft 	版本号	只回退commit的信息,不回退index(暂存区)和本地代码。
		# 	git reset --mixed 	版本号	回退commit和index,不回退本地代码,默认使用该策略。
		# 	git reset --hard	版本号	彻底回退到指定的版本,本地代码、commit、index都会回退。
		# 说明:
		# 	git reset 即 git reset HEAD
		
		git reset HEAD fileName
		# 把暂存区中指定文件的修改回退到工作区中,即unstage。
		# eg:把暂存区的修改回退到工作区:git reset HEAD . 
	
		git checkout -- fileName
		# 撤销工作区指定文件的修改。
		# 说明:
		#	如果文件没有add到暂存区,则checkout后,工作区的该文件和版本库中的该文件相同。
		#	如果文件已经add到暂存区,但是还没有checkout到本地仓库,则revert后,工作区的该文件和暂存区的该文件相同。
		

	
远程仓库的相关操作:	
	
	git remote
	# 查看远程库列表
	# 参数:
	#	git remote -v	查看远程库列表,并且显示clone的URL。

	git remote add RepositoryName gitURL
	# 添加远程仓库。
	
	git remote show RepositoryName
	# 查看远程仓库的信息。
	
	git remote rm
	# 删除远程仓库。
	
	git remote rename oldName newName
	# 给远程仓库重命名。