git本地ben远程分支_初识git

初识git作者:曾 彬

因为之前一直使用svn,所以在学习git时,难免会拿来对比

一、在Linux下创建git仓库

1.创建版本库(如果不指定~/gitrepos,将会以当前目录为库,类似svnadmin  create ):

git init ~/gitrepos

2.添加文件入版本库, 类似svn add

cd ~/gitrepos

git add test.txt

3.再创建一个目录(程序员A),作为开发目录

mkdir ~/gitworkA

chmod 777 ~/gitworkA

4.在开发目录检出, 类似svn co

cd  ~/gitworkA

git clone  ~/gitrepos

5.这时在~/gitworkA目录你会看到刚才添加的test.txt。我们编辑一下,然后再使用下面的命令提交上去

git add test.txt        //将修改的内容提交到"本地缓存区"

git commit  -m'add test.txt'   //将"本地缓存区"内容提交到"本地库(程序员A)"

git push origin        //将内容提交到远程(这里即~/gitrepos) 库中

这里要注意git与svn 不同,git 每个(程序员A、B、C)都是一个库,svn 则依赖于同一个库。

6.这时我们发现~/gitrepos库中文件并没有修改,但使用git status -s,发现文件被修改了,我们可以使用

git stash //缓存当前的目录文件,并且将目录至更新最新的库(刚才A提交的)

git stash clear // 清空无用的缓存(这里的目的就是要更新A提交的文件)

二、冲突解决

上面的操作基本完成了,git库创建->代码检出->修改代码->提交,

接下来梳理一下代码冲突导致的提交失败,如何解决

场景再现:B更改了test.txt,但是A也改了,并且A先提交了(即B修改的文件不是最新的),B再提交就会出现如下一大段文字

d3de84312da8927b7e1fe556ba4cca6f.png

此时我们只要关注红框中 ()内的内容,即fetch first

svn 出现文件冲突第一想到:自己的文件是不是最新的(执行svn up)?

在git中,我们使用

git fetch origin

git merge origin

或者 (pull即上面2个方法的合并)

git pull origin

此时会出现,我们只需要关注红框中的冲突文件即可(图中为blogbak.sh)

94bf522975432e3f8dc03ed8605f01c7.png

然后查看当前目录文件状态

git status -s

会出现

UU test.txt

查看 test.txt内容,其中

1:自己(即B程序员) 修改的 <<<<<<< HEAD 修改内容 =======

2:~/gitrepos中的修改(即A程序员刚才提交的) ======= 修改内容 >>>>>>>

2e8f5c742b5a7ee10c3e4df3a32bde6a.png

编辑文件,确认修改正确之后使用下面的命令进行提交即可

git add test.txt

git add commit -m'fix conflict in text.txt'

git push origin

这样冲突就解决了

最后,强烈建议提交文件前自己先diff一下,确认没有问题,再提交(●’◡’●)

git diff test.txt

并且时常更新代码,保持同步,避免大量浪费时间在解决冲突文件中

git pull origin

三、如何打tag与推送至远程服务器

1、列出标签tags

git tag

2、打tag,为当前版本添加标签

$ git tag -a v0.1 -m “v0.1版本”

3、为已经commit的记录打tag(9fbc3d0为 git log –oneline中的值)

$ git tag -a v0.1 9fbc3d0

4、删除标签tag

$ git tag -d v0.1

5、将tag推送至远程服务器

$ git push ssh master v0.1 # 将v0.1.2标签推送

$ git push ssh master --tags # 将本地所有标签全部推送

$ git push ssh master :v20170514-add-process-func   #将删除的tag-release推送至服务器

6、拉取服务器上的tag,并切换至tag

$ git pull ssh

$ git checkout v0.1

7、找回误删文件

在git status -s中显示D的文件,可以通过以下方式找回

$ git checkout -- test.txt

四、其他使用技巧

8、清空本地修改

$ git checkout .

9、生成git登陆ssh key

$ cd ~/.ssh

$ ssh-keygen -t rsa -C “email@email.com”

10、删除远程分支

git push  [远程名] :[分支名]

git push origin :serverfix

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值