git 笔记 常用命令reset merge rebase

在本地新路径下$ git clone https://github.com/hitgub123/golang.git,把github官网仓库拷到本地

git status查看当前分支,和其他信息

本地修改后,git add . 可以提交当前路径下所有修改到暂存区
git commit -m "任意信息"可以提交暂存区的修改到本地仓库
(get commit -am '任意信息'可以同时add和commit,删除的文件也可以使用。
但新建的文件不能使用此命令,需要分开add和commit。)
git push 可以把本地仓库的修改提交到远程仓库

如果push前(add和commit之后)其他人已经push过,导致自己的版本不是最新产生文件冲突,可以先git pull拉去他人的修改,
这样可以看到哪些文件哪些内容冲突,修改后重新add>>commit>>push

复原相关:
	修改了本地文件且已经add,使用git restore --staged 该文件 可以取消add。
	修改了本地文件且还没有add,使用git restore 该文件 可以取消修改。

	如果已经commit,restore就无效了。可以使用git reset或者revert
	
	reset可以切换到本地commit过的任意一个的版本,会留下log(git reflog可看到)
		用法是git reset 版本号(版本号通过git reflog查看),一般有--hard、--mixed、--soft3种选项
		--hard:同时复原本地仓库,暂存区,本地文件
		--mixed(或者不写):同时复原本地仓库,暂存区
		--soft:复原本地仓库

	git revert 版本号,可以撤销这个版本的修改(之前版本和之后版本的修改不变),可能造成冲突,此时需要手动解决冲突

分支:
	git branch -v 		:查看分支
		git branch -a	:查看分支,包括远程分支
	git branch 分支名  :新建分支,已经存在时不会创建,提示已经存在
		git checkout -b 分支名	:新建分支并checkout到该分支
	git branch -d 分支名 :删除分支,不存在时不删除,提示不存在
	git branch -m 分支名 新分支名:重命名
	git checkout 分支名 :切换分支
	git merge 被merge分支名	:合并分支
		git checkout master && git merge b1 :把b1分支的修改合并到master分支。
		如果b1里被修改的文件,在master没被修改过,不会冲突,否则会产生冲突
		
	
	git push origin 分支名	:push到远程子分支
		在任意分支上,add/commit后q1的修改后,git push origin q1即可push到远程q1分支。
		如果远程q1分支未创建,会自动创建。本地分支名即原分支名。在远程切换到q1分支可看到本次修改。
	
	git pull origin master(任意存在的分支):只pull master分支(任意存在的分支)的更新
	git pull 	:pull所有分支的更新()
		在子分支使用git pull时可能提示【There is no tracking information for the current branch】,
		而不更新当前子分支。可以git pull origin 当前子分支名 进行更新 
	
	在本地任意分支里,git pull origin b1把远程b1分支pull到本地后,
	能checkout到b1进行修改,然后add/commit/push到远程b1分支
	
	git rebase -i  [startpoint]  [endpoint]:合并多次提交为一条
		如果指定了endpoint且endpoint不是当前分支HEAD所指向的commit(最后的coomit?),会产生一个新的临时分支。
		之前分支endpoint之后的commit不会反映到此分支,可按照git提示保存此临时分支。
		如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit.
		不包括startpoint,包括endpoint。
			比如从新到旧有提交4次,版本号分别时c1,c2,c3,c4,
			git rebase -i c1(相当于git rebase -i c1 c4), 进入交互界面,输入i后进入编辑模式,
			将最上方的除第一行以外的pick改成s,	按exs退出编辑模式后输入:wq按回车进行保存和退出。
			之后进入commit信息输入页面,同上进行编辑保存退出后rebase完毕。
			git log 可以看到c2,c3,c4合并成了一个commit,减少了log(不减少reflog)
	rebase可以将某一段commit粘贴到另一个分支上,未尝试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值