Git常用命令

首先解释几个Git常用的名词:

1,working tree:工作目录树,下文称为工作空间

2,index:索引,下文称为暂存区

在使用git前需要先生成秘钥

ssh-keygen -t rsa -C “mail”
-t Specify type of key to create
-C Provide new comment

一,配置git

显示配置:
	git config [file_option] --list
配置修改:
	git config [file_option] <config_name> <config_value>
		file_option(配置优先级从高到低):
			空:%REPOSITORY_HOME%/<repository_name>/.git/config
			--global:%USER_HOME%/.gitconfig
				USER_HOME:
					win:/c/<user_name>
					linux:/home/<user_name>
			--system:%GIT_HOME%/etc/gitconfig

常见的config_name如下:

user.name
user.email
color.ui
merge.tool(必须是git可识别的工具)

在windows系统中要注意换行符的问题,如果想在提交时自动把行结束符CRLF转换成LF、签出代码时把LF转换成CRLF,只需进行如下设置即可

git config --global core.autocrlf true

二,图形界面

图形界面:
	git gui
提交记录(需移动至库路径下):
	gitk [options]
		options:
			默认:当前分支提交记录
			--all:所有分支提交记录

三,帮助信息

git help <command>
git <command> --help

四,文件操作

查看工作空间状态:
	git status
跟踪新文件 | 已跟踪文件改动提交至暂存区 | 将文件状态由有冲突改为已解决:
	git add <file_names>
提交修改至版本库:
	提交暂存区内容:
		git commit -m <desc>
	提交工作空间已跟踪文件修改(无论修改是否提交至暂存区,都会被提交至版本库):
		git commit -m <desc> <-a|file_names>
			-a:所有已跟踪文件
			file_names:特定已跟踪文件
取消跟踪文件:
	git rm --cached <file_names>
暂存区的修改回退至工作区:
	git reset HEAD <file_names>
取消文件修改:
	git checkout <file_names>
		文件没有add至暂存区,则文件恢复至版本库中的状态
		文件add至暂存区后又做了修改,恢复至add至暂存区时的状态
文件重命名:
	1,git mv <old_file_name> <new_file_name>
	2,git commit -m <desc>
文件删除:
	1,删除工作目录下该文件:rm <file_name>
	2,将该删除操作提交至暂存区:git rm <file_name>
	3,提交暂存区修改:git commit -m <desc>
文件比较:
	比较工作空间和暂存区之间的区别:
		git diff [file_name]
	比较暂存区和版本库之间的区别:
		git diff --cached [file_name]
	比较工作空间和版本库之间的区别:
		git diff HEAD [file_name]

五,工作现场

保存工作现场:
	git stash
查看所有保存的工作现场:
	git stash list
恢复工作空间至最近一次保存的工作现场:
	git stash apply
恢复工作空间至特定的工作现场:
	git stash apply <stash_id> 
恢复工作空间至最近一次保存的工作现场,之后删除该工作现场:
	git stash pop
删除特定的工作现场:
	git stash drop <stash_id>

六,分支(主分支有时被称为主干,也就是master)

查看所有本地分支:
	git branch
查看所有本地分支跟踪的远程分支:
	git branch -r
创建分支:
	git branch <new_branch_name> [father_branch_name]   
创建+检出新建分支:
	git checkout -b <new_branch_name> [father_branch_name]  
检出分支(内容检出至工作空间):
	git checkout <branch_name>
修改分支名:
	git branch -m <old_branch_name> <new_barnch_name>
分支合并:
	直接合并:
		将指定分支合并至当前分支:git merge <branch_name>
	压合合并:
		所有历史提交压合为一个提交:git merge --squash <branch_name>
			不会自动提交,需要手动提交
	拣选合并:
		拣选特定提交合并至当前分支:git cherry-pick [-n] <commit_id>
			-n:合并不会自动提交,拣选出所有提交后,手动提交即可 
冲突处理:
	1,手动修改文件 | git mergertool(使用merge工具修改文件)
		可使用git config --global merge.tool <merge_tool_name>
		修改默认的merge工具,merge工具路径必须已经加入系统PATH并且是git可识别的工具
	2,git add <file_names>将文件状态由有冲突修改为已解决
删除指定分支(不能删除当前分支):
	git branch -[d|D] <branch_name>
		-D:强制删除,可用来删除未merge的分支 

七,标签

查看所有标签:
	git tag
创建标签(默认为当前分支):
	git tag <tag_name> [branch_name]
根据commit-id为当前版本创建标签:
	git tag <tag_name> <commit_id>
为当前版本创建有说明的标签:
	git tag -a <tag_name> -m <desc>
显示标签详细信息:
	git show <tag_name>
推送本地特定标签至远程库:
	git push origin <tag-name>
推送本地所有标签至远程库:
	git push origin --tags
删除本地库特定标签:
	git tag -d <tag_name>
删除远程库特定标签:
	git tag -d <tag_name>
	git push origin :refs/tags/<tag_name>

八,版本库

创建本地库:
	git init
克隆远程库:
	git clone <URL> [local_repository_name]
查看所有远程库别名:
	git remote [-v]
		-v:显示的更加详细,会附带URL地址
查看远程库详细信息:
	git remote show <repository_alias>
创建远程库别名+建立关联关系:
	git remote add <repository_alias> <URL>
删除远程库别名+删除关联关系:
	git remote rm <repository_alias>
更新本地库关联的远程库 :
	git fetch [repository_alias] 
		默认为origin
更新本地库关联的远程库,并将更新合并至本地库:
	git pull [repository_alias local_branch_name:remote_branch_name]
		repository_alias默认为当前分支关联的远程库别名,
			如果当前分支没有关联远程版本,则为origin
		local_branch_name:remote_branch_name默认为
			current_branch_name:current_branch_name
本地库提交至远程库(只提交已经commit的修改):
	git push [repository_alias local_branch_name:remote_branch_name]
		同git pull说明

 

参考资料:

廖雪峰官方网站Git教程:

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

Git官方网站《Pro Git》中文版:

http://www.git-scm.com/book/zh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值