git使用规范流程

0:git clone git项目仓库
Git 会自动为你将此远程仓库命名为 origin,并下载其中所有的数据,建立一个指向它的 master 分支的指针,在本地命名为 origin/master,但你无法在本地更改其数据。接着,Git 建立一个属于你自己的本地 master 分支,始于 origin 上 master 分支相同的位置,你可以就此开始工作。
一次 Git 克隆会建立你自己的本地分支 master 和远程分支 origin/master,并且将它们都指向 origin 上的 master 分支。

1: git checkout master, git pull
2: git checkout jiepengliu, git rebase master jiepengliu
如果没有本地分支,则需要通过git branch jiepengliu,来创建本地的分支
3: 写代码, git add . , git commit -m “注释”
4: git push origin jiepengliu(这个操作会创建remotes/origin/jiepengliu这个目录)
5: 登录网址,申请jipengliu合并到master: New Merge Request:
6: 有合并权限的人同意合并: Accept Merge Request
以下是一个例子:
通过git branch -va 查看分支的细节信息:
这里写图片描述
可以看出,尚未建立本地分支,通过git checkout -b jiepengliu
(git checkout 命令用来切换分支,或者检出内容到工作目录)
这里写图片描述
从上图中间那一列的字符可以看出此时的分支jiepengliu和从master更新而来的,所以两者是相同的。
先通过add命令进行内容的添加,通过git status查看变更的情况,如下图:
这里写图片描述
查看分支状态:
这里写图片描述
将更新的部分commit到缓存中,并撰写对应的注释:
这里写图片描述
此时的jiepengliu分支已经发生了变化,可以从版本号看出来
这里写图片描述
此时,再将其push到 origin jiepengliu
这里写图片描述
可以看出,版本号远端的origin jiepengliu的版本号和本地分支是一致的。
此时可以去远端(网页)查看上传成功的jiepengliu分支,是已经上传成功的。在网页上面申请分支的合并,合并到master之后。
在shell这里checkout下master(即切换到master目录下)
这里写图片描述
对master进行pull操作
这里写图片描述
此时再查看细节,可以发现此时的master已经被更新和远端一致(版本号d932113)
这里写图片描述
再切换到jiepengliu分支:
这里写图片描述
通过git rebase master jiepengliu,确立jiepengliu的地位:
这里写图片描述
再git push origin jiepengliu,即更新到远端的origin jiepengliu
这里写图片描述
至于pull的时候,可以采用下面的流程:

git checkout master#切换到master
git pull#同步pull远端master到本地master
git checkout liujiepeng#切换到本地liujiepeng分支
git rebase master liujiepeng#更新本地liujiepeng分支,使其和本地master一致

git checkout liujiepeng#切换到指定分支
git push origin liujiepeng#push操作
git branch -va#查看分支情况

补充说明:
如果远端代码有其他人提交了,然后本地自己开发新添加代码后,想要将远端的代码pull,会发生代码冲突:
your local changes to the following files would be overwritten by merge
的提醒。
这时候需要
如果希望保留本地开发所所做的改动,仅仅并入远端其他人的代码,处理方法如下:

git stash
git pull
git stash pop

然后可以使用Git diff -w +文件名 来确认代码自动合并的情况。

1)当对于本地的文件被误删除,想要获取远端的最新版本可以通过下述方式获取:

git checkout -- 文件名

2)当add操作之后,想要回退该操作,可以通过

git reset HEAD 

实现
3)如果是想要回退到历史版本
可以先从git log查看该分支下所有历史版本

git reset --hard HEAD^

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
如果此时又想要回去刚才回退之前的版本,即版本回退之后,又后悔了,此时可以通过版本号进行复原。比如你回退之前的版本号是3628164开头的一串东东。版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。

git reset --hard 3628164

git diff显示 ^M

由于不同系统下对于回车换行的定义不同,导致在用git diff查看文本的更改情况时候,发现在差异上多了每行的^M 。所以就涉及到CRLF 和 LF 之间的转换问题。
CRLF 就是 \r\n,LF 就是 \n,在 vim 底下你會在每一行後面多看到一個 ^M,那個就是 \r
在解决方案上,在linux端只需要git config --global core.autocrlf input将回车换行转为lf

参考:
http://www.wy182000.com/2014/01/06/git-%E8%A1%8C%E5%B0%BEcrlf%E6%8D%A2%E8%A1%8C%E7%AC%A6n%E4%B8%8Ern%E5%A4%84%E7%90%86/

http://littleq.logdown.com/posts/2013/12/02/git-merge-ignore-line-endings-when-crlf

创建标签和标签的提交:

git tag -a v2017_12_18 -m "歌词上传优化"
git push origin --tags

先在master下修改完代码,commit之后,先不push。
而是先checkout到本地的publish分支,然后在这个分支下进行git merge master操作,进行分支合并。再push到远端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值