热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Study:Git的简单使用

这里默认已经安装好Git,并注册了GitHub帐号,如尚存疑惑,请查看:《Ubuntu:初识GitHub和Gi

这里默认已经安装好 Git ,并注册了 GitHub 帐号,如尚存疑惑,请查看:《Ubuntu:初识GitHub和Git》https://blog.csdn.net/qq_41297934/article/details/103263531。

一、创建新仓库

本地文件通过 Git 上传到 GitHub 上,需在本地创建新仓库。

1. 创建项目文件夹 Prodect ,该文件包含两个文件 first.pyREADME.md :

cfl@Ambitioner:~/Project$ ls -a
.  ..  first.py  README.md

2. 在已创建的项目文件夹 Project 下,使用终端创建新的 git 仓库:

$ git init

cfl@Ambitioner:~/Project$ git init
已初始化空的 Git 仓库于 /home/cfl/Project/.git/

cfl@Ambitioner:~/Project$ ls -a
.  ..  first.py  .git  README.md


二、检出仓库

从本地仓库或者远程服务器仓库克隆一个新的仓库。

1. 从本地仓库克隆:(path 为原仓库所在位置)

$ git clone path

cfl@Ambitioner:~/PycharmProjects$ git clone /home/cfl/Project
正克隆到 'Project'...
完成。

2. 从远程服务器克隆:(usernameGitHub 用户名,repository 为仓库名)

$ git clone https://github.com/username/repository

cfl@Ambitioner:~/Project$ git clone https://github.com/Ambitioner-c/airbnb
正克隆到 'airbnb'...
remote: Enumerating objects: 51, done.
remote: Counting objects: 100% (51/51), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 51 (delta 18), reused 47 (delta 15), pack-reused 0
展开对象中: 100% (51/51), 完成.


三、工作流

你的本地仓库由 git 维护的三棵“树”组成。第一个是你的工作目录,它持有实际文件;第二个是缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,指向你最近一次提交后的结果。

四、添加与提交

步骤1. 第一步是将修改的部分添加到缓存区:

$ git add /*

cfl@Ambitioner:~/Project$ git add *

或者,添加指定文件

cfl@Ambitioner:~/Project$ git add first.py

步骤2. 实际提交改动到 HEAD :( message 为代码提交的信息)

$ git commit -m 'message'

cfl@Ambitioner:~/Project$ git commit -m 'First commit.'
[master (根提交) eeaa909] First commit.
 2 files changed, 2 insertions(+)
 create mode 100644 README.md
 create mode 100644 first.py

步骤3. 修改已经提交到 HEAD ,但未提交到远程服务器仓库,下一节将讲述如何提交远程服务器。

五、推送改动

HEAD 中的修改提交到远程服务器仓库。

1. 已经克隆现有仓库,把本地仓库推送至远端仓库:

$ git push https://github.com/Ambitioner-c/Project.git master

2. 没有克隆现有仓库,把本地仓库推送至远端仓库:

$ git remote add origin https://github.com/Ambitioner-c/Project.git
$ git push -u origin master

cfl@Ambitioner:~/Project$ git remote add origin https://github.com/Ambitioner-c/Project.git
cfl@Ambitioner:~/Project$ git push -u origin master 
Username for 'https://github.com': Ambitioner-c
Password for 'https://Ambitioner-c@github.com': 
对象计数中: 4, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (4/4), 301 bytes | 150.00 KiB/s, 完成.
Total 4 (delta 0), reused 0 (delta 0)
To https://github.com/Ambitioner-c/Project.git
 * [new branch]      master -> master
分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。


六、分支

分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”。在其他分支上进行开发,完成后再将它们合并到主分支上。

1. 创建一个新的分支 feature:

$ git checkout -b feature

cfl@Ambitioner:~/Project$ git checkout -b feature
切换到一个新分支 'feature'

2. 选择进入的分支/主分支:

$ git checkout feature/master

cfl@Ambitioner:~/Project$ git checkout master 
切换到分支 'master'

3. 删掉分支:

$ git brance -d feature

cfl@Ambitioner:~/Project$ git branch -d feature 
已删除分支 feature(曾为 eeaa909)。

4. 将分支推送到远端仓库

注:本地创建的分支只有推送到远端仓库才可以开源。

$ git push https://github.com/Ambitioner-c/Project.git feature

cfl@Ambitioner:~/Project$ git push https://github.com/Ambitioner-c/Project.git feature 
Username for 'https://github.com': Ambitioner-c
Password for 'https://Ambitioner-c@github.com': 
Total 0 (delta 0), reused 0 (delta 0)
remote: 
remote: Create a pull request for 'feature' on GitHub by visiting:
remote:      https://github.com/Ambitioner-c/Project/pull/new/feature
remote: 
To https://github.com/Ambitioner-c/Project.git
 * [new branch]      feature -> feature


七、更新与合并

为了演示,我们在 feature 分支中修改 README.ed 文件结果如下:

cfl@Ambitioner:~/Project$ git add README.md 
cfl@Ambitioner:~/Project$ git commit -m 'First commit.'
[master 63a390d] First commit.
 1 file changed, 2 insertions(+)
cfl@Ambitioner:~/Project$ git push https://github.com/Ambitioner-c/Project.git feature 
Username for 'https://github.com': Ambitioner-c
Password for 'https://Ambitioner-c@github.com': 
Everything up-to-date

1. 更新本地仓库至最新版本:

$ git pull

cfl@Ambitioner:~/Project$ git pull 
来自 https://github.com/Ambitioner-c/Project
 * [新分支]          feature    -> origin/feature
已经是最新的。

2. 查看修改的部分

$ git diff master feature

cfl@Ambitioner:~/Project$ git diff master feature 
diff --git a/README.md b/README.md
index 6d45873..a03bcaf 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1 @@
 This is first project.
-
-First commit.

3. 合并其他分支到当前分支(主分支 master ):

$ git checkout master
$ git merge feature

cfl@Ambitioner:~/Project$ git checkout master 
已经位于 'master'
您的分支领先 'origin/master' 共 1 个提交。
  (使用 "git push" 来发布您的本地提交)
cfl@Ambitioner:~/Project$ git merge feature 
已经是最新的。

更多信息请查看官方文档:https://git-scm.com/book/zh/v2;简易指南:https://www.bootcss.com/p/git-guide/


推荐阅读
  • Day 5 20190120 老男孩python学习第5天 内容整理
    今天继续看MasteringPycharm的视频,一个半小时看git的教学视频:视频1小时44分钟,看了2个半小时以上https:www.youtube ... [详细]
  • 先记住几个专用名词,如下:Workspace:工作区IndexStage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库#在当前目录新建一个G ... [详细]
  • nvmw安装,用于控制node版本;
    之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好 ... [详细]
  • 下载安装并配置flutter
    1.去github上下载flutter安装包https:github.comflutterflutterreleasestag2.0.42.将安装包zip解压到你想安装Flut ... [详细]
  • Proof (of knowledge) of exponentiation
    1.ProofofexponentiationProofofexponentiation是基于adaptiverootassumption(充分必要条件࿰ ... [详细]
  • 手机49kbps转换比特率256Kpbs{‘corpus_no’:‘7045177033217452815’,‘err_msg’:‘success.’,‘err_no’:0,‘re ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
  • 初始化初始化本地空版本库,仓库,英文名repositorymkdirtest&&cdtestgitinit克隆项目到本地gitclone远程同 ... [详细]
  • 修正我的GitHub commit 数据
    早晨上班,滴滴搭车里,我在掘金这个帖子看到大家晒自己的Github活跃记录,我也晒了下自己的记录。不过太少了。有遗漏的commits状况这也让我知道,自己觉得自己很忙的,实际上提交 ... [详细]
  • 获取原始语音系统图使用matlab生成一个测试用的单频信号,1KHz,1Vrmsclcclearall;closeall;f1000;%定义信号频 ... [详细]
  • 开发笔记:googletest安装与使用
    本文由编程笔记#小编为大家整理,主要介绍了googletest安装与使用相关的知识,希望对你有一定的参考价值。简介googletest是Google公司 ... [详细]
  • flutter 环境安装以及配置
    首先需要下载flutter源码,以下是github地址:https:github.comflutterflutter然后需要安装git环境吧,下图红框可以自行下载安装接下来需要安装 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
author-avatar
手机用户2502904917
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有