如何使用Git Git常用命令

如何使用 Git

一、克隆

1.在目录/project 上右键选择Git Bash Here,或者cmd,powershell都可以执行命令;
2.输入命令git clone https://github.com/lingdian-ah/MainPage.git;
//会将该项目克隆到当前目录下,/project/MainPage

二、Git使用步骤

开始学习

// 切换到项目文件夹下执行命令
1.touch readme.md					// 创建readme.md文件,也可自己手动新建一个文件:鼠标右键新建文件
2.git init							// 初始化,创建本地git仓库,仅执行一次

3.git add README.md				// 将文件添加到仓库中,git add . 表示添加所有文件到本次仓库,.点和*星号一个意思,表示全部(每次修改时需执行该命令)
4.git commit -m "first commit"	// 提交,并输入本次更改信息
	//注意:也可以执行命令:git commit -a -m "本次更改内容"   表示提交所有更改文件,该命令等同于3,4步骤
	
5.git remote add origin http://gogit.qyvip.com/lingdian/mango.git	// 添加远程仓库,如果不换仓库,只需执行一次
6.git pull origin master			// 拉取内容,如果知道没有人更新过,可以不执行(此处为master主分支,也有可能是其他分支)
7.git push -u origin master		// 上传本次更改的内容,后面是分支,此处为master主分支,也有可能是其他分支

合并分支

场景:分支master,branch1,branch2
1.为了解决master上的 bug1,创建了分支 branch1,在该分支上进行修改;git checkout -b branch1
2.为了解决master上的 bug2,创建了分支 branch2,在该分支上进行修改;git checkout -b branch2
3.当 bug1 解决后,需要把 branch1分支上的内容合并到master上,执行命令:
	git checkout master		// 先切到master分支
	git merge branch1		// 将branch1合并到master,此时由于没用其他人调整,不存在冲突
4.此时为了解决 bug2,已经在branch2上进行了多次修改提交,目前以解决该bug,假设解决bug1和bug2都修改了文件demo.java
5.现在进行最终合并,执行命令:
	git checkout master		// 同样的需先切到master分支
	git merge branch2		// 将 branch2 合并到 master,由于和branch1修改了同一个文件,此时会存在冲突
	git status				// 查看状态,输出:...略  Unmerged paths:  ...略  demo.java
	git mergetool 或者 vim 文件名// 使用工具处理冲突,会提示你输入工具,可以直接回车,使用默认工具处理,工具中会体现文件差异等信息
	git commit -a -m "merge branch2"// 解决冲突后,进行提交
	git push origin master			// 进行push,然后你可以在github上查看提交记录,已经文件内容是否正确,这样就ok了

三、常用命令

远程地址相关命令:remote

1.添加远程地址
	git remote add origin 地址		// origin:自定义,远程地址名称,地址:为github项目的地址
2.删除远程地址
	git remote remove origin		// origin:要删除的地址
3.修改远程地址
	git remote set-url origin 新地址	// origin:远程地址名称,新地址:新的github项目地址
4.查看远程地址
	git remote						// 查看名称
	git remote -v					// 查看详情,名称+地址

分支相关命令:branch、checkout

1.创建分支
	git branch 分支名称				// 分支名称:新建的分支名
2.切换分支
	git checkout 分支名称			// 分支名称:要切换的到的分支名
3.创建分支并切换到该分支
	git checkout -b 分支名称			// 分支名称:新建的分支名
	git checkout -B 分支名称			// 创建/重置分支,并切换到该分支
4.查看分支
	git branch						// 查看分支名称
	git branch -v					// 查看分支详情,名称+最后提交记录
	git branch -a					// 查看所有分支:包含远程和本地分支
	git branch --merged				// 查看哪些分支已经合并到当前分支上,*表示当前分支
	git branch --no-merged			// 查看哪些分支还未合并到当前分支上,*表示当前分支
5.删除分支
	git branch -d 分支名称			// 分支名称:要删除的分支名

重置命令:reset

1.将文件还原为上次提交时的状态(前提是该文件是未提交状态)
	git checkout -- 文件名称

2.若文件已添加到本地仓库,修改为未添加
	git reset HEAD 文件名称			// 可以通过git add 文件名称 再次添加文件到本地仓库

日志、记录:log、diff、status、show

1.更新记录
	git log							// 查看提交记录,输入q退出
2.显示本次更改文件中改动的内容
	git diff
3.显示当前状态,可以看到哪些文件更改了 ( 经常使用的一个命令 )
	git status
4.显示最后一次的文件更改情况
	git show

IDEA Git 开发

分支a合并到master

通常情况下master主分支上是不做修改的。自己新建一个分支,在分支上进行修改,修改,测试好之后,再与主分支进行合并。

详情见:https://blog.csdn.net/dling8/article/details/89049222

情况说明:现有分支master,分支a。在分支a上做了修改,想要和master主分支进行合并。大致步骤如下:

1.在分支a上修改后,需进行提交commit、上传push→到分支a上;
2.idea右下角,Local Branches栏目:选中master,checkout切换到master主分支上;
3.然后同样在idea右下角,Remote Branches栏目:选中分支a,Merge into Current;
4.此时还是在master主分支上,然后进行commit、push操作,这样master上的代码就更新了;

pull拉取失败,又无法提交的解决办法

思路:先将本地修改在git栈中保存起来,这样本地修改就被清除了,此时我们再从远程分支上pull拉取,就可以了。拉取成功后,再将git栈中保存的修改释放出来,如果有代码冲突,可进行merge操作。合并完成后,再进行commit、push完成更新。

链接:https://blog.csdn.net/dling8/article/details/89049997

1.选择Stash Changes...,后输入message(此次Stash的说明),最后进行创建(点击Create Stash);
2.从远程拉取,执行pull;
3.选择Unstash Changes...,选中刚刚保存的Stash,并勾选Pop Stash(意思是把这个stash记录清除),最后点击Apply Stash;
4.此时可能会出现代码冲突,弹出代码冲突窗口,我们点击merge...,进行手动合并;

.gitignore规则不生效的解决办法

idea可以下载一个插件.gitignore,方便管理

把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:

git rm -r --cached .	//注意后面有个点
git add .				//注意后面有个点
git commit -m "update .gitignore"

idea出现merging 分支a 的解决办法

如何终止git merging状态

在idea控制台输入:
git merge --abort	//此时右下角就变为了正常的分支状态

错误

push rejected

情形:我在github上创建了一个仓库与本地项目名称相同,包含了README.md文件。本地项目也包含了README.md文件。在本地项目上创建了本地仓库,添加了远程链接。commit成功,push时出现这个问题。
解决:执行下面的命令,然后再push就成功了
	// 允许合并不相关历史的内容
	git pull origin master --allow-unrelated-histories
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值