[2] Gitリポジトリー

まず、Gitリポジトリ

初期化倉庫

##基于当前目录初始化仓库
$ git init
##指定demo目录初始化仓库
$ git init demo

既存の倉庫のクローニング

##克隆现有的仓库,默认目录名:libgit2
##git clone <repo>
$ git clone https://github.com/libgit2/libgit2
##克隆现有的仓库,指定目录名:mylibgit
##git clone <repo> <directory>
$ git clone https://github.com/libgit2/libgit2 mylibgit

注意:Gitのクローンは、ほとんど他のGitのバージョン管理システムとは別の重要な特性であるというだけで必要な書類により行われ、あなたの仕事をコピーするよりもGitのリポジトリサーバ上のすべてのファイル、のすべてのバージョンです。

第二に、ステージング領域の操作

##直接从暂存区删除file文件工作区则不做出改变
$ git rm --cached <file>
##暂存区的目录树会被 master 分支指向的目录树所替换,工作区不受影响
$ git reset HEAD
##用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件,同时清除工作区和暂存区中未提交的改动
git checkout HEAD .
git checkout HEAD <file>
##用暂存区全部或部分文件替换工作区的文件,会清除工作区中未添加到暂存区的改动
$ git checkout .
$ git checkout -- <file>

第三に、バージョンコントロールを追加

文書フローをコミット

##进入仓库目录创建文件
$ cd /demo
$ touch demo_01.c
$ touch demo_02.c
$ mkdir LICENSE
##添加文件追踪track,即添加文件至暂存区
$ git add *.c
$ git add LICENSE
##提交文件至版本库,-m 参数指定提交log
$ git commit -m 'initial project version'

注:引数としてコマンドを追加したファイルまたはディレクトリのパスのgitを使用してください。引数がディレクトリへのパスがある場合、コマンドは再帰的にそのディレクトリ内のすべてのファイルを追跡します。

ファイルステータス
新しいファイルステータス:??

$ cd /home/super/gitDemo
$ touch a.txt
$ git status -s

トラックを追加した後、ファイルの状態:A

git add a.txt
git status -s

コミットの前ではなく、ファイルを変更し、ファイルのステータス表示:AMを

echo "a" > a.txt
git status -s

トラックの後、再び、状態:

git add a.txt
git status -s

コミット実行した後、ファイルの同期、ステートレス

git commit a.txt -m "init a.txt"
git status -s

、コミット再度ファイルを変更し実行した後、ステータスがある:M(右M)

echo "b" > a.txt
git status -s

再びトラック後、状態がある:M(左M)

git add a.txt
git status -s

コミットの前ではなく、ファイルを再度変更し、ステータスは次のとおりです。MM

echo "d" > a.txt
git status -s

再びトラック後、状態がある:M(左M)

git add a.txt
git status -s

、コミットファイルの同期を実行し、ステートレス

git commit a.txt -m "init a.txt 0.1"
git status -s

gitのステータスステータスの簡単な説明

マーク 説明
?? いいえトレース・ファイルが新たに追加されません
A  新しいファイルがステージングエリアに追加されます
AM 新しいファイルがステージングエリアに追加された後、前者はワークスペースに変更し、コミットしませんでした
 M (右のM)が変更されたファイルをコミット過剰ではなく、まだ作業領域に一時記憶領域を追加してきました
M  (左のM)オーバーコミットファイルをされているが、ワークスペースに変更され、ステージング領域を追加しました
MM ワークスペースで変更することが、その後変更され、作業領域にステージングエリアに提出されたファイルをコミットしていました

トラッキング・コンフィギュレーション・ファイルを無視
Gitはあなたが文書の管理に組み込まれている必要はありませ指定することができますので、彼らは追跡されていないファイルの一覧には表示されません。

##创建文件.gitignore
cd <dir>
touch .gitignore
##添加如下配置信息
# no .a files
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all files in the build/ directory
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

次のように.Gitignoreファイル形式の仕様は次のとおりです。

  • #で始まるすべての空白行または行はGitの無視されます
  • あなたは、標準パターンマッチンググロブを使用することができます
  • マッチモードは再帰を防ぐために(/)で始めることができます
  • マッチモード(/)指定されたディレクトリに終わる可能性があり
  • 指定されたモード以外のファイルやディレクトリを無視するには、電流モードで感嘆符を追加することができます(!)ネゲート

说明: glob 模式指 shell版简化的正则表达式。
  星号 * 匹配零个或多个任意字符;
  [abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
  问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字);
  使用两个星号 * 表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z , a/b/z 或 a/b/c/z 等。

参考资料

参考网站:https://git-scm.com/book/zh/v1/起步

  • 作者: DeepInThought
    出处: https://www.cnblogs.com/DeepInThought
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • おすすめ

    転載: www.cnblogs.com/DeepInThought/p/11108179.html