Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2730|回复: 1
打印 上一主题 下一主题

Git 提交方式

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
跳转到指定楼层
楼主
发表于 2017-7-6 10:29:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了使时间线不出现回环,使时间线性。push代码前先按以下两种方式同步代码
方法一
  1. git stash     # 先缓存本地修改
  2. git pull      # 同步远端修改
  3. git stash pop # 取出本地修改
  4. git commit    # 正常提交代码
  5. git push origin xxx     # 推送代码
复制代码
方法二:
  1. git commit
  2. git pull -r # ps : 注意一定要加-r
  3. git push origin xxx
复制代码
说明
  1. git pull --rebase
复制代码
注: 如果本地修改了文件后没有commit, 是无法执行这个命令的。 如果本地的改动暂时不想提交, 可以执行 git stash把更改暂存起来,代码取下后用git stash pop恢复。

rebase:
如果本地执行了commit, 取代码的时候没有加上 –rebase选项, 那么代码取下后, 分支线就有可能变成以下样子:
  1. *   commit 4763ad3a3fe0997ac3b8b961e5b48b112e5c90d3
  2.   |\  Merge: 2cfc4bb bd310c9
  3.   | | Author: zhao11 <zhao11@gmail.com>
  4.   | | Date:   Fri Nov 21 20:17:31 2014 +0800
  5.   | |
  6.   | |     Merge branch 'master' of git@github.com:zmkj/zmkj.git
  7.   | |
  8.   | * commit b0c04ba1081c1774fc5736682230038fcaa28d7b
  9.   | | Author: Tiaot11 <Tiaot11@gmail.com>
  10.   | | Date:   Thu Nov 20 17:25:23 2014 +0800
  11.   | |
  12.   | |     修改3
  13.   | |
  14.   * | commit 2cfc4bb285586517cd40846b39ce649d89bf19bd
  15.   |/  Author: zhao11 <zhao11@gmail.com>
  16.   |   Date:   Fri Nov 21 20:15:39 2014 +0800
  17.   |
  18.   |       修改2
  19.   |
  20.   * commit af140294a9e9d0382d75a79ff739402d4f5fa4f1
  21.   | Author: zhao11 <zhao11@gmail.com>
  22.   | Date:   Thu Nov 20 09:01:31 2014 +0800
  23.   |
  24.   |     修改1
  25.   |
复制代码
使用git log --graph可以查看,针对以上例子的情况, 可以使用:
  1. git rebase b0c04ba1081c1774fc5736682230038fcaa28d7b
复制代码
rebase的参数是一个提交记录sha1,这里选的是log为“修改3", 也可以选其他,根据具体情况而定。
执行完rebase命令后没意外的话分支线应该就正常了, 还是用git log --graph进行确认(分支线正常, 没有干掉正常的提交记录) 确认无误后就可以push到github了, 注意, 如果在github上的分支线已经是这样“乱”了的话, push的时候要加上–force选项(谨慎!!!), –force即强制把自己本地的代码库覆盖github上的。

rebase到底做了什么事情:
rebase就是选取某个提交作为起点, 沿着这个提交点往下构建一条新的分支线, 分支线以外的提交以patch的形式一个一个地打到这条分支线上。






回复

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
沙发
 楼主| 发表于 2017-7-19 17:50:00 | 只看该作者
Linux下以https(用户名密码)方式同步代码
git clone https://github.com/xxx/shell.git
...
git commit
git push -u origin master


http://www.111cn.net/sys/linux/79505.htm
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-11-22 17:35 , Processed in 0.057533 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表