Linux プロジェクトのプロセス + git を使用してローカル コードを gitee にアップロード

目次

序文 

「プログレスバー」アイテム

git アップロード コード

コードを初めてアップロードする 

gitをインストールする 

 クローンリポジトリ接続

 ファイルをパスディレクトリに渡します

ファイルアップロードの3つのコツ

後続のコミット更新

gitの実践的な使い方の補足


序文 

この記事では、makefile を使用してプロジェクトを作成し、git リモート ウェアハウスにアップロードする方法を紹介します。Makefile は、ソフトウェア プロジェクトを自動的に構築、コンパイル、テストするためのツールです。プロジェクト内の複数のファイルと依存関係を管理し、いくつかの単純なコマンドを使用して面倒なタスクを完了するのに役立ちます。

Makefile を使用する前に、Git ウェアハウスを作成し、ローカル コードをリモート ウェアハウスにプッシュする必要があります。その後、Makefile を使用してプロジェクトをコンパイルおよびビルドし、生成されたファイルを記録のためにリモート リポジトリにプッシュできます。

この記事では、Makefile を使用して C++ プロジェクトをコンパイルし、生成されたファイルを Git リモート ウェアハウスにプッシュする方法を紹介します。


例として簡単なアナログカウントダウンプログラムを見てみましょう

コードを実行します。 

#include <stdio.h>
#include <unistd.h>
 
int main(void) {
  int cnt = 9;
  while (cnt) {
    printf("%d\r", cnt--);
    fflush(stdout);
    sleep(1);
  }
 
  return 0;
}

 この時点で、9 から 0 まで 1 か所でカウントが開始されます。

 

  • \r は、現在の行の最初の位置に戻ることを意味します。
  • 画面上のこの行に各文字が印刷されると、画面上のカーソルは最初の位置に戻ります。
  • fflush を使用してバッファ データ出力番号を即座に更新すると、最初の位置にある元の文字が新しい文字で上書きされ、1 秒待った後、次のサイクルに入ります。

キャリッジ リターン記号とバッファの原理を使用して、プログレス バー項目を作成できます。

「プログレスバー」アイテム

 完全なプログラムコード

#include <stdio.h>
#include <string.h>
#include <unistd.h>

#define NUM 101
#define STYLE '#'

void process()
{
    char bar[NUM];
    memset(bar, '\0', sizeof(bar));

    const char *lable = "|/-\\";

    int cnt = 0;
    while(cnt <= 100)
    {
        printf("[%-100s] [%d%%] ... %c\r", bar, cnt, lable[cnt % 4]);  // 改成\r
        fflush(stdout);
        bar[cnt++] = STYLE;
        //bar[cnt] = '>';
        usleep(20000);
    }
    printf("\n");
}

int main()
{
    process();

    return 0;
}

注: 実行中は全画面表示にする必要があります。そうしないと表示バグが発生します。

3つのセグメントに分かれたプロジェクト形式 

 以下は、test.cpp ファイルとプログレス バーのヘッダー ファイルのコードです。

#include "process.h"   //test.cpp
int main()
{
	Process0n();
	return 0;
}


#include <stdio.h>  //process.h
#include <string.h>
#include <unistd.h>
#define TIMES 100
#define NUM TIMES+1


extern void Process0n();

最も重要なのは、次の process.cpp 内のコードです。



#include "process.h"   //process.cpp
void process() {
  char bar[NUM];
  memset(bar, '\0', sizeof(bar));  // 将所有缓冲区空间设置为\0
/* 不断旋转的光标:   | / - \   */
  const char* lable = "|/-\\";

  int cnt = 0;
  while (cnt <= NUM-1) {
    printf("[%-100s] [%d%%] ... %c\r", bar, cnt, lable[cnt % 4]);  
    fflush(stdout);         // 将数据立马显示出来

    bar[cnt++] = '#';   // 填充#作为进度图例

    usleep(20000);      // 休眠0.02s  
  }

  printf("\n");    // 跑完再让他换个行
}

int main(void) {
  process();
  return 0;
}
  • ループでは、配列内の要素が出力され、各出力後に要素が配列に追加されます。
  • 印刷時にキャリッジ リターン \r が使用されるため、配列内の内容は画面上の元の内容を毎回上書きします。
  • fflush によってバッファ内のデータをすぐに画面に更新します。
  • usleep を使用して 0.02 秒遅らせると、進行状況バー全体が 2 秒以内に印刷できるようになります。

メイクファイルの内容をもう一度見てください。

Process0n:test.cpp
        g++  test.cpp process.cpp -o Process0n
.PHONY:clean
clean:
        rm -rf Process0n

Make は Process0n 実行可能プログラムを作成し、実行すれば完了です。 

git アップロード コード

コードを初めてアップロードする 

gitをインストールする 

 Linux システムには Git がプリインストールされていない可能性があるため、インストールする必要があります

yum install -y git

 クローンリポジトリ接続

クラウド上のデータを現在のマシンにコピーする

形式: git clone+ ウェアハウスの https リンク

注: 名前は、ウェアハウスを所有するユーザーの名前です。

クローン作成が完了すると、ウェアハウスのパス ディレクトリ small-project-testing が生成されます。

パス ディレクトリを入力し、pwd を使用してディレクトリの絶対パスを表示します

 ファイルをパスディレクトリに渡します

  アップロードする必要があるすべてのファイルを同じディレクトリに置きます。アップロードするファイルは f1 ディレクトリに置きます。

ファイルを指定されたディレクトリにコピーします。  cp ファイルはディレクトリ パスを指定します。

ディレクトリを指定したディレクトリにコピーします。  cp -r directory はディレクトリ パスを指定します。

 パスディレクトリでアップロードを開始します

ファイルアップロードの3つのコツ

3 つのトリックのうちの最初のトリック: git add 。

  • 使用法: git add [ファイル名]
  • 作成したローカルウェアハウスにファイルを置きます

ここで使用するファイル名がポイントで、ローカルウェアハウスではなくカレントディレクトリにあるファイルをgitが自動的に判断してローカルウェアハウスに入れてくれます。

3 つの軸の 2 番目のトリック: git commit -m ''

  • 使用法: git commit -m 'コミットログ'
  • 機能: ファイルの変更をローカル ウェアハウスに送信し、ローカル ウェアハウスに配置されたコンテンツを自動的に更新します。
  • 注: -m の後の一重引用符内のコミット ログを走り書きしないでください。

 git が初めてコミットをアップロードしたときに、次のような問題が発生しました。

Commit failed - exit code 128 received, with output: '*** Please tell me who you are.


Run


  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"


to set your account's default identity.
Omit --global to set the identity only in this repository.


fatal: empty ident name (for <>) not allowed'

直訳すると「あなたが誰なのか教えてください。」
つまり、git はここにいるあなたが誰であるかを認識できないため、git にあなたの身元を伝える必要があります。

次の 2 つのコマンドを入力して完了します

git config --global user.email "(邮箱)"
git config --global user.name "(名称)"

注: git config コマンドの --global パラメータはこのパラメータを使用します。これは、マシン上のすべての Git ウェアハウスがこの設定を使用することを意味します。もちろん、特定のウェアハウスに別のユーザー名と電子メール アドレスを指定することもできます。ペイ 

設定が完了したら、コマンドを入力してファイルの送信を完了します。 

3 つのトリックのうちの 3 番目のトリック: git Push 

  • 使用法: git プッシュ
  • 機能: ローカル ウェアハウスのコンテンツと gitee 上のリモート ウェアハウスのコンテンツの一貫性を維持します。

最初のプッシュには次の警告が表示されますが、これは単なる警告であり、無視してもリモート ウェアハウスのアップロードには影響しません。 

warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

警告: Push.default が設定されていません。Git 2.0 では、その暗黙的な値が「match」から「simple」に変更されました。このメッセージを抑制し、デフォルトの変更後に現在の動作を維持するには、次のコマンドを使用します。 git config --global Push.default match このメッセージを抑制し、新しい動作をすぐに採用するには、次のコマンドを使用します。 git config --global Push.default simple 「git help config」を表示します。詳細については、「push.default」を検索してください。(「シンプル」モードは Git1.7.11 で導入されました。古いバージョンの Git を使用する場合がある場合は、「シンプル」モードの代わりに同様の「現在の」モードを使用できます)

 警告の解決策: (プロンプトに従って、git Push の動作を変更します)

git config --global push.default matching

無事提出されました!

後続のコミット更新

3 つの軸の 1 つ: 追加

形式: git add+file

3 つのトリックのうちの 2 つ目: コミット

形式: git commit -m "コンテンツ"

3 つのトリックのうちの 3 つ目: プッシュ

形式: gitプッシュ

 

無事追加されました!

gitの実践的な使い方の補足

コミット レコードを確認します: git log:

  • 使用法: git ログ
  • 機能: リモート倉庫への提出記録を表示し、時系列に遡って表示します。

リモート ウェアハウスの内容をローカル ウェアハウスにプルします: git pull

  • 使用法: git pull
  • 機能: リモート ウェアハウスのコンテンツをローカル ウェアハウスにプルし、さまざまなコンテンツを自動的に更新します。

削除、名前変更: git rm/mv ファイル名:

  • 使用法: git rm ファイル名
  • 機能: ウェアハウス内のファイルを削除します

 

おすすめ

転載: blog.csdn.net/weixin_73961973/article/details/130671337