git工作流程简介

1、git工作流程图

git clone(克隆):从远程仓库中克隆代码到本地仓库

git add(添加):将工作区修改的代码添加到缓存区

git commit(提交):将缓存区代码提交到本地仓库

git push(推送):将本地仓库中的代码推送到远程仓库

git pull(拉取):拉取远程仓库的代码到工作区

2、初始化一个本地仓库并推送到远程仓库

2.1、初始化本地仓库

我们创建一个文件夹,使用git init命令创建一个本地仓库。    

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first
$ git init
Initialized empty Git repository in C:/Users/lng/Desktop/first/.git/

2.2、在工作区写代码

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ vim main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ cat main.cpp
#include <stdio.h>

int main()
{
        printf("hello word");
        return 0;
}

创建一个文件,然后写相应代码。此时文件所处的位置就是工作区。

可以看下文件状态:Untracked(未跟踪)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ git status
On branch master

No commits yet

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

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

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)

2.3、将文件添加到暂存区

代码没有问题后,接下来就是使用git add命令将文件从工作区添加到暂存区。

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ git add main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$

此时,代码已经添加到了暂存区

可以看到,文件状态已经发生了变化

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ git status
On branch master

No commits yet

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


lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$

2.4、提交文件到本地仓库

  使用git commit命令就可以将暂存区的文件提交到本地仓库

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ git commit -m "测试"
[master (root-commit) 5e9c79b] 测试
 1 file changed, 7 insertions(+)
 create mode 100644 main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ git status
On branch master
nothing to commit, working tree clean

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$

可以通过git log命令查看提交日志

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ git log
commit 5e9c79b253395cfb43df636e58e3cf5af85a5277 (HEAD -> master)
Author: lng <XXXXXXXXX@qq.com>
Date:   Fri Jan 7 11:58:14 2022 +0800

    测试

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)

2.5、将本地仓库推送到远程仓库

首先我们需要有一个代码托管中心(git服务端)。常用的有以下三种:

github:这个就不过多介绍了,上面有大量优秀的源代码。但是由于服务器在国外,所以在国内访问网速不太好。

gitlab:可以直接在你的本机安装部署,国内大部分公司都是用的这个,是在局域网环境下使用的。但是这个是比较耗费内存和cpu资源的,如果你的电脑性能一般,建议不要安装。

gitee:是国内的一个Git 托管服务,相比于github,访问速度就快很多。

下面的例子就是使用的gitee

我们在gitee上创建一个远程仓库

 

使用git remote命令创建到远程仓库的连接(这样推送的时候就能知道是推送到哪一个远程仓库)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ git remote add origin https://gitee.com/lingpe/test001.git

使用git push命令将本地仓库代码推送到远程仓库

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$ git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 281 bytes | 281.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/lingpe/test001.git
 * [new branch]      master -> master

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first (master)
$

推送成功后,我们就能在远程仓库看到我们推送的代码了。

 3、从远程仓库克隆到本地仓库

        远程仓库中已经有我们的代码了。如果本地代码不小心删除了,就可以使用git clone命令从远程仓库拉取最新代码。

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first
$ ls

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first
$ git clone https://gitee.com/lingpe/test001.git
Cloning into 'test001'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first
$ cd test001/

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first/test001 (master)
$ ls
main.cpp

我们修改代码后,重新提交,推送。

使用git diff命令可以看到我们本次修改的内容。我们克隆下来的代码,已经与远程仓库建立了连接,所以再次推送时,就不用执行git remote命令了,直接使用git push进行推送。

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first/test001 (master)
$ git diff master
diff --git a/main.cpp b/main.cpp
index 6340de9..5e81f0d 100644
--- a/main.cpp
+++ b/main.cpp
@@ -2,6 +2,6 @@

 int main()
 {
-        printf("hello word");
+        printf("this is first code");
         return 0;
-}
\ No newline at end of file
+}

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first/test001 (master)
$ git add main.cpp

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first/test001 (master)
$ git commit -m "修改代码"
[master d55cd83] 修改代码
 1 file changed, 2 insertions(+), 2 deletions(-)

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first/test001 (master)
$ git push origin master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 329 bytes | 329.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/lingpe/test001.git
   5648826..d55cd83  master -> master

lng@DESKTOP-9TD21KL MINGW64 ~/Desktop/first/test001 (master)
$

远程仓库的代码已经成功修改

 4、拉取远程仓库代码

        在开发过程中,同分支上如果别人对远程仓库的代码进行了修改。我们就可以使用git pull拉取远程代码,就可以将别人最新修改的代码同步到我们的本地工作区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大草原的小灰灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值