Git使用教程-日常问题皆可解决

  •  下面是一些常用的简单命令,后面都有备注
ssh-keygen -t rsa -C "xxx@xx.com"   //创建秘钥ssh-key

git clone http://192.168.1.1/xx/xx.git      //克隆远程仓库代码

git clone -b dev xxx.git	//从远程仓库克隆dev分支的代码到本地分支

git add xx.txt			//添加到暂存区

git commit -m '文本新内容'	//提交到仓库

git status			//查看文件状态

git diff			//查看修改了什么

git log				//查看历史版本 (如果发现用完 git log后无法退回输入界面 可以用Shift+q回到输入界面)

git reset --hard 882e1e0	//版本回退 "882e1e0"为之前的版本号的前7位

git reflog			        //查看命令历史 版本回退到哪里了

git checkout -- xx.txt		//丢弃工作区的修改(未提交到暂存区) 并可以“一键还原”无论是修改的还是删除的

git reset HEAD xx.txt		//丢弃暂存区的修改 然后在用git checkout -- xx.txt 恢复原样

git reset --soft HEAD^		//丢弃暂存区的修改 不删除工作空间代码,撤销commit,不撤销git add 操作

git reset HEAD^			    //丢弃暂存区的修改 不删除工作空间改动代码,撤销commit,并且撤销git add操作

git reset HEAD~2		    //丢弃暂存区的修改 如果进行了2次commit 都可以撤回

git rm xx.txt			//删除文件

git log | grep "^Author: " | awk '{print $2}' | sort | uniq -c | sort -k1,1nr 查看所有提交者及其提交次数,按次数由高到低排序

git clone git@github.com:qxyz/WEBERP.git	//从远程仓库克隆到本地分支 (最好本地为空时使用此命令)

git branch			    //查看分支

git branch 分支名		//创建分支

git checkout 分支名		//切换分支

git checkout -b 分支名	//创建+切换分支

git merge 分支名		    //合并某分支到当前分支

git remote -v           //查看远程仓库地址

git branch -d 分支名		//删除分支

1、git remote rm origin	//删除本地指定的远程地址

2、git remote add		//重新添加

  • 只更新内容
//只更新内容
 1、先输入$ git fetch origin master		//把远程仓库的新改动下载到本地分支
 2、在输入$ git merge origin/master  		//和新改动和本地分支合并 (本地不为空时使用此命令)

  • 推送到远程仓库

 1、先输入$ git remote add origin git@github.com:qxyz/WEBERP.git 
 2、在输入$ git push -u origin master 		//-u 是设置默认推送地址 下次推送直接 git push origin 
  • 总体流程

$ makdir ~/hello-world		//创建一个项目hello-world
$ cd ~/hello-world		//打开这个项目
$ git init			//初始化 
$ git add README		//更新README文件
$ git commit -m 'first commit'	//提交更新,并注释信息“first commit” 
$ git remote add origin git@github.com:qxyz/hello-world.git   //连接远程github项目  
$ git push -u origin master	//将本地项目更新到github项目上去

 有些基础的朋友已经发现其实这都是常用的命令,但是依然有很多人在使用的时候一如提笔忘字。

 在不忙的时候还能查一查,但是工作可没有多少空闲的时间,特别是当你写好代码兴致冲冲开始push时,嗯?发现与另一个同事的代码冲突了,本来就不太熟悉这些命令现在又面临解决冲突,天呐!这真是雪上加霜 心情要糟糕透了!那么面对这种冲突 我们该怎么解决呢?

这才是本文的重点,先看下图:

图中圈红的地方标识dev分支与远程仓库存在冲突,这时无论你如何提交都是不会成功的,解决的唯一方式就是去面对并解决这个冲突

Git已经帮我们想好了该如何解决冲突,这真是太棒了!自从学会了解决冲突我感觉我在使用GIt时浑身充满力量!

步骤一、将我们本地的代码存储到git栈将本地代码恢复到最近的一次提交
$ git stash

步骤二、由于本地代码已经恢复到上一次提交,这时我们可以使用git pull拉取远程代码了
$ git pull

步骤三、将我们刚刚存储在git栈中的代码和本地刚刚拉取的代码进行合并
$ git stash pop
-----------------------------------------------------------------------------------------
到这里已经进入正常的提交流程了,
注意:如果代码存在冲突,需要手动检查冲突的文件,解决之后再提交。
使用 git diff 可以查看冲突的内容
-----------------------------------------------------------------------------------------			
步骤四、将代码提交到暂存区 
$ git add xx.xx  //也可以使用 git add . 代替将所有修改全部暂存

步骤五、
$ git commit -m '本次更新内容'

步骤六、提交到远程仓库
$ git push origin master 

-----------------------------------------------------------------------------------------
下面这两个命令是查看git栈存储列表 和 清空git栈,当我们在执行第三步之前切记不要情况了git栈!
-----------------------------------------------------------------------------------------
$ git stash list

$ git stash clean

下面是我成功的截图

追加

//Git在2.23版本之后更新了一个命令:
$ git switch 

//该命令取代了之前版本的 git checkout 命令,这是一个切换分支的命令,使用方式如下:
//创建并切换到新的dev分支,可以使用:
$ git switch -c dev

//直接切换到已有的master分支:
$ git switch master
最后说一下git的合并分支操作:
在工作中我们经常会遇到冲突,上面提到使用git stash 来解决 
git stash是使用git栈来保存已更新的代码 然后使用 git pull来获取远程仓库的最新代码
之后使用 stash stash pop 恢复工作区的内容达到解决冲突的效果

还有一种方式,那就是使用合并解决冲突,这种方式需要自己先建立一个分支。
例如,我们现在处于dev分支要合并已修改的代码,那么应该这么合并:

//1、建立并切换到tempBranch临时分支 (-b是创建 checkout是切换)
$ git checkout -b tempBranch
//2、使用 add 把所有的更新全部添加到暂存区
$ git add .
//3、提交到本地仓库
$ git commit -m 'xx更新'
//4、切回dev分支
$ git checkout dev
//5、拉取远程仓库最新的代码
$ git pull
//6、合并分支
$ git merge tempBranch
//7、提交到远程仓库dev分支
$ git push origin dev
//完成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值