Study:Git的简单使用

这里默认已经安装好 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 <filename>/*

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://[email protected]': 
对象计数中: 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://[email protected]': 
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://[email protected]': 
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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章