文档章节

git 完整操作流程

MadDragon
 MadDragon
发布于 2018/12/29 19:06
字数 1394
阅读 7
收藏 0

一、 本地新建项目

  • 新建文件夹
  • 新建文件

二、 初始化本地仓库

# 命令
git init 

三、 添加远程仓库 源

# origin 、 mycode 数据源名称  http 数据源 地址 (远程 GitHub仓库、coding等) 
git add remote origin https://github.com/Jeremyljm/python-test.git
git add remote mycode https://github.com/Jeremyljm/python-test.git

四、提交 变更代码(本地仓库 -- 远程仓库)

1、查看变更 信息

git status

操作结果

Administrator@SDWM--20170715Z MINGW64 /e/Git/pythonTest (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        test01.py
        test02.py

nothing added to commit but untracked files present (use "git add" to track)

2、添加变更文件 到 暂存区

  • git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。

  • git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)

  • git add -A :是上面两个功能的合集(git add --all的缩写)

# 添加所有变更文件
git add .

# 添加 指定 文件
git add test01.py  test02.py

# 添加  文件名  test 开头的文件
git add test*

# 添加 后缀为 .py 的文件
git add *.py

3、查看变更 信息

git status

操作结果

Administrator@SDWM--20170715Z MINGW64 /e/Git/pythonTest (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   test01.py
        new file:   test02.py


4、提交 暂存区 文件 到 本地仓库

git commit -m [备注文本]
git commit -m "提交备注"

操作结果

Administrator@SDWM--20170715Z MINGW64 /e/Git/pythonTest (master)
$ git commit -m "提交备注"
[master (root-commit) 6e3fd15] 提交备注
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test01.py
 create mode 100644 test02.py

5、推送 本地仓库 到 远程仓库(GitHub、coding)

# origin 、 mycode 数据源名称  master 分支名
git push [数据源] [分支名]
git push origin master
git push origin dev

# 强制推送(谨慎操作)
git push -f [数据源] [分支名]
git push -f origin master

五、更新 变更代码(远程仓库 -- 本地仓库)

1、更新差异到本地仓库(只更新本地仓库,不影响所有分支代码)

git fetch [数据源] [分支名]
git fetch origin master

操作结果

Administrator@SDWM--20170715Z MINGW64 /e/Git/pythonTest (master)
$ git fetch origin master
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (4/4), done.
Unpacking objects: 100% (6/6), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
From https://github.com/Jeremyljm/python-test
 * branch            master     -> FETCH_HEAD
   6e3fd15..56e405b  master     -> origin/master

2、合并差异文件(将差异文件合并到指定分支)

git merge [数据源]/[分支名]
git merge origin/master

操作结果

Administrator@SDWM--20170715Z MINGW64 /e/Git/pythonTest (master)
$ git merge origin/master
Updating 6e3fd15..56e405b
Fast-forward
 test01.py | 1 +
 test02.py | 1 +
 2 files changed, 2 insertions(+)

六、解决冲突

1、commit 代码 (参考第四步)

2、推送代码(推送失败 需要更新代码)

git push [数据源] [分支名]
git push origin master

操作结果

Administrator@SDWM--20170715Z MINGW64 ~/Desktop/good (master)
$ git push origin master
To https://github.com/Jeremyljm/python-test.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/Jeremyljm/python-test.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

3、更新差异到本地仓库(只更新本地仓库,不影响所有分支代码)

git fetch origin master

操作结果

Administrator@SDWM--20170715Z MINGW64 ~/Desktop/good (master)
$ git fetch origin master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/Jeremyljm/python-test
 * branch            master     -> FETCH_HEAD
   c229456..61d8fe7  master     -> origin/master

4、合并差异文件(将差异文件合并到指定分支)

git merge origin/master

4.1 操作结果 (提示冲突 需要解决冲突)

查看附录二 便于理解

Administrator@SDWM--20170715Z MINGW64 ~/Desktop/good (master)
$ git merge origin/master
Auto-merging aaa.py

#  冲突(内容):在aaa.py中合并冲突
CONFLICT (content): Merge conflict in aaa.py

#  自动合并失败;修复冲突,然后提交结果。 
Automatic merge failed; fix conflicts and then commit the result.

4.2 查看冲突文件 的冲突内容

git diff [对比文件名]
git diff aaa.py

操作结果

Administrator@SDWM--20170715Z MINGW64 ~/Desktop/good (master|MERGING)
$ git diff aaa.py
diff --cc aaa.py
index 3403bd6,24b947b..0000000
--- a/aaa.py
+++ b/aaa.py
@@@ -18,5 -18,5 +18,9 @@@ __mtime__ = '2018/12/28
  ????????????????? ┃┫┫? ┃┫┫
  ????????????????? ┗┻┛? ┗┻┛
  """
++<<<<<<< HEAD
 +print("王诗林")
++=======
+ print("邬晓峰")
++>>>>>>> origin/master
  print("测试")

4.3 修改冲突 文件内容 (vi编辑器或其他文本编辑器)

vi aaa.py

# 进入插入状态
ins

操作结果 (打开文件 修改内容)

# 退出插入状态 
ESC

# 调起命令
shift + :

# 保存并推出
wq

# 查看文本是否更新成功
cat

4.4、commit 代码 (参考第四步)


附录一: 其他命令

1、查看文件状态

git status

操作结果

Administrator@SDWM--20170715Z MINGW64 /e/Git/pythonTest (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        # 新文件 未添加到 暂存区
        test01.py

nothing added to commit but untracked files present (use "git add" to track)

2、查看本地 数据源 信息

git remote -v

操作结果

Administrator@SDWM--20170715Z MINGW64 /e/Git/pythonTest (master)
$ git remote -v
origin  https://github.com/Jeremyljm/python-test.git (fetch)
origin  https://github.com/Jeremyljm/python-test.git (push)

3、查看本地 与 线上 当前文件 差异

git diff [文件名]
git diff aaa.py

附录二 :git冲突产生 和 解决方案 思维导图

git冲突产生 和 解决方案  思维导图

未完待续。。。。

© 著作权归作者所有

MadDragon
粉丝 5
博文 40
码字总数 21551
作品 0
杭州
程序员
私信 提问
Git超实用总结,再也不怕记忆力不好了

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯工蜂发表于云+社区专栏 Git 是什么? Git 是一个分布式的代码管理容器,本地和远端都保有一份相同的代码。 Git 仓库主...

腾讯云加社区
2018/10/16
0
0
GitLab初体验

最近由于工作需要,开始设计和实现一些新的运维工具,打算使用git替代svn来管理代码,尝试一些不同的技术。 git和svn的区别网上有很多的介绍了,况且已经不是什么太新的技术,如下是一些简要...

bisal
2016/09/12
0
0
Git可视化极简易教程 — Git GUI使用方法

前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中的...

51aa
2018/07/02
0
0
Git 最基本的操作命令

序言 Git操作是作为程序猿必备的一项技能,虽然现在各种git操作软件满天飞,但是很多人还是在merge、commit、add、pull、push中迷离了双眼,本文是最简单的git命令操作,旨在以最简洁的语言记...

LY丶Smile
2017/12/22
0
0
大厂的第一堂课,完整的git流程

前言 大厂有着数量庞大的代码库以及复杂的权限验证体系,囊括着开发、测试、上线的完整流程。因此必然会有一套代码仓库的管理流程,而不再是个人的代码随意开发、随意提交。这也是我从小厂出...

Mr_Treasure
2018/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

会用python把linux命令写一遍的人,进大厂有多容易?

看过这篇《2000字谏言,给那些想学Python的人,建议收藏后细看!》的读者应该都对一个命令有点印象吧?没错,就是 linux 中经常会用到的 ls 命令。 文章中我就提到如何提升自己的 python 能力...

上海小胖
8分钟前
1
0
HashMap的特性

一、hashmap数据结构:哈希表结构:数组+链表 hashmap调用默认构造方法会产生一个默认底层是长度为16的Entry数组,首先调用key的hasCode()方法来得到一个整数, int hash = hash(key.hashCode...

GGbird
8分钟前
2
0
第五章 spring-connet之Imports注解来龙去脉

前言 imports是一个在spring体系里非常重要的注解,基本每个Enable开头的注解必然有一个import注解。接下来我们深入研究下import的作用。看小节的同学建议先取看PostProcessorRegistrationDe...

鸟菜啊
11分钟前
1
0
CentOS部署Harbor镜像仓库

关于Harbor Harbor是用于存储和分发Docker镜像的镜像仓库服务,相比Docker Registry,Harbor在安全、标识、管理等方面做了增强,更适合企业使用; 官方网站:https://goharbor.io/ 官方开源:...

程序员欣宸
16分钟前
1
0
JavaScript调试必会的8个console方法

每个JavaScript开发者都用过console.log()来调试程序,但实际上Console对象还提供了很多其他方法可以提高调试效率。本文将介绍8个有趣的Console方法,即使JavaScript老手也不一定知道! 1、c...

汇智网教程
38分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部