Git入门2

Git命令行操作

本地库操作

版本前进后退
查看git记录
$ git log
$ git log --pretty=oneline
$ git log --oneline
$ git reflog

多屏显示控制方式:
空格 向下翻页
b    向上翻页
q    退出
  1. 基于索引值操作【推荐】

    $ git reflog
    $ git reset --hard edd61f9
    
  2. 使用^: 只能后退

    $ git log --oneline
    $ git reset --hard HEAD^^^
    
  3. 使用~: 只能后退

    $ git log --oneline
    $ git reset --hard HEAD~3
    
删除文件找回
  1. 永久删除文件后找回:删除操作已提交到本地库

    $ git add .
    $ git commit -m "commit aaa"
    $ rm aaa.txt
    $ git add aaa.txt
    $ git commit -m "delete commit aaa"
    $ git reset --hard edd61f9
    
  2. 添加到暂存区的删除文件找回:删除操作未提交到本地库

    $ git add .
    $ git commit -m "commit aaa"
    $ rm aaa.txt
    $ git reset --hard HEAD^
    
比较版本差异
$ git diff							比较多个文件
$ git diff aaa.txt					比较工作区与暂存区的文件
$ git diff HEAD aaa.txt			比较工作区和本地历史纪录的文件
分支管理
创建分支
 $ git branch [分支名]
 查看分支
 $ git branch -v
 切换分支
 $ git checkout [分支名]
 合并分支
 	1.切换到接受修改的分支上(被合并分支)    
 		$ git checkout [分支名]
 	2.执行merge命令						
 		$ git merge [分支名]
解决冲突
 1. 编辑文件,删除特殊符号
 2. 把文件修改到满意程度
 3. $ git add [文件名]
 4. $ git commit -m "日志信息"

远程库操作

查看关联的远程仓库
$git remote -v

关联远程仓库
$git remote add origin 远程仓库的ssh				origin是仓库别名

将master分支上commit的文件push到origin远程仓库
$git push origin master

克隆文件/项目
$git clone 想要克隆文件的ssh

克隆意味着
1. 完整的把远程库下载到本地
2. 创建origin远程地址别名
3. 初始化本地库

拉取
	1.pull = fetch + merge
	$git fetch [远程地址别名] [远程分支名]
	$git merge  [远程地址别名/远程分支名]
解决冲突
	1.如果不是基于GItHub远程库所做的修改,不能推送,必须先拉取
	2.拉取下来如果进入冲突状态,按照“分支冲突解决”操作解决即可

push文件示例

首先你的状态应该是在某一分支上进行修改或开发,在你完成了修改或是开发准备提交代码的时候,你需要先保证你是在最新的代码上做的更改,才不会跟提交过的文件产生冲突
(这里警示我拉代码的仓库和提代码的仓库不是一个)

  1. 更新代码
    $git status								  查看你目前代码的状态
    
    $git stash save "我存的文件"   			  将修改放入暂存区
    
    $git checkout develop1       			  切到develop1分支上
    
    $git pull upstream develop1               将别名为upstream的远程仓库develop1分支上的代码拉取到你本地develop1分支上 
    										  然后你的develop1分支上,就是最新的代码啦,这时候你要把最新的代码放到你的开发分支上
    $git rebase feature1        			  将develop1分支上的代码rebase到你的开发分支feature1上
    										  如果这时候出现冲突就需要解决(显示err啥啥啥)
    	在本地解决冲突
    	$git add 冲突的文件名
    	$git rebase --continue
    										  如果继续冲突就继续解决(右边括号里是进度),直到冲突解决完	
    										  (没有冲突,或者解决完冲突后,你的开发分支上代码代码也是最新的)
    $git stash list     						  显示暂存区列表
    $git stash apply xx编号   				  从暂存区取出你的修改
    					        			  xx编号->  一般是stash@{0},你找跟你msg对应的,比如我存的就是“我存的文件”
    
  2. push代码
    $git status								查看代码的状态
    
    $git reset HEAD 文件名					把已add但又不想提交的文件拉回来,变成未add的状态
    
    $git add 文件名     						提交单个文件    add你想提交的文件
      
    $git add .          					将所有未提交的文件提交
    
    $git commit -m "msg"  					commit文件,并将msg作为本次提交的文字记录
    
    $git log       							查看一下msg的格式(按Q退出)
    
    $git push origin feature1    			push文件(feature1分支的commit提交到origin远程仓库里)
    
    $git push -f origin feature1  		    强制push
    

跨团队协作

fork—>本地修改–>push到本地仓库—>pull request—>审核代码—>merge

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值