コンセプトに基づいて、Gitの
Gitは概要を説明しています
あなたは、コードの以前のバージョンにロールバックすることができ、任意の時間(
git reset --hard
);それは誰か他の人のコード(ブランチ)の共同開発をカバーしています。
(改訂履歴を残します
git log
)。あなたは簡単に別のバージョン作られたバージョンを管理することができます。
1、Gitの動作モード
オペレーティング
パソコン上で90%以上の操作
バージョン履歴を表示、変更を送信、ファイルの追加ファイルを変更
リポジトリの同期
ローカルで修正されたバージョンは、サーバーにプッシュ
バージョン管理システム:
2、Gitのファイルストレージ
別のファイルストレージとSVNに注意してください。
GitはSVNそれに従ってデータを処理するか、保存されません。 逆に、より小さなファイルシステムのセットとしてデータのスナップショットのようにGitの。更新を提出、またはGitの中でプロジェクトの状態を保存するたびに、それはすべてのファイルのスナップショットを作成するために、主だったとインデックスのスナップショットを保存します。効率的に、ファイルが変更されていない場合は、Gitは再保存されていないファイルについては、これだけにリンクする前に保存されたファイルのみを保持。ストリームに、より多くのデータのスナップショットのようにGitは。
特長概要:
ダイレクト録音のスナップショット
snapshoot
。むしろ違いよりも、ほとんどすべての操作がローカルに実行されます。
時間データの整合性を維持します。
多くの操作は、データだけを追加します。
3つの状態がファイル(3つの状態だけで)
変更されました(
modified
)(ステージングされています
staged
)提出されました(
committed
)
3、Gitのファイルのステータス
Gitリポジトリファイル:管理は、文書のリポジトリとなっています。
更新:作業ディレクトリ(
working directory
修正Gitのファイル)。これは、ステージングされています:Gitが変更されたファイルに対する操作を実行ステージング、ファイルが保存されているに一時記憶領域(
staging area
);(SVNは、一時記憶領域の概念に注意を払っていません)已提交: 将已暂存的文件执行Git提交操作,将文件存入版本库(
git directory
);
Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
工作目录是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作‘索引’,不过一般说法还是叫暂存区域。
基本的 Git 工作流程如下:
在工作目录中修改文件。
暂存文件,将文件的快照放入暂存区域
git add
。提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录
git commit
。
git add 放到暂存区;
git commit 从暂存区放到版本仓库中;
4、本地版本库与服务器版本库
Git是分布式的。
二、Git常用命令
1、config和email
关于配置user.name
和user.email
:
可以有三个地方配置:
比如输入git config
命令, 会出现下面三个信息,即系统级别system
,全局global
,和局部local
。其中优先级不断升高。
zxzxin@zxzxin:~/Git/gitlearn$ git config usage: git config [<options>] Config file location --global use global config file --system use system config file --local use repository config file -f, --file <file> use given config file --blob <blob-id> read config from given blob object
这里展示一下配置我们局部的gitlearn
仓库:
git 提交的id(commit id
)是一个摘要值,这个摘要值实际上是一个sha1
计算出来的。
2、git rm 和rm的区别
git rm :
1、删除了一个文件
2、将被删除的文件纳入到了暂存区(stage);(可以直接调用
git commit
来提交)
若想恢复被删除的文件,需要进行两个动作:
1、
git reset HEAD test2.txt
,将待删除的文件从暂存区恢复到工作区;2、
git checkout -- test2.txt
, 将工作区的修改丢弃掉;
**rm **:
只是将文件删除;注意: 这时,被删除的文件并未纳入到暂存区当中。
这时是提交(
git commit
)不了的。要想纳入暂存区,必须要再调用一次git add
。
实战对比:
3、git mv 和 mv的对比
git mv(和git rm
类似):
先完成重命名;
然后提交到暂存区;
git mv
演示:
而 mv:
只是完成重命名;
需要自己调用
git add
提交到暂存区;
使用技巧: 可以通过git commit --amend -m '修正内容'
更改上次错误的提交消息。(就是-m ''
)后面的提交信息写错了。
4、git log查看日志
git log -n
可以查看最近的n
条日志。
git log --pretty=oneline
以一行一行的方式显示出来。
查看git命令帮助:
5、.gitignore
文件
在开发中,如果我们不想将所有的文件都放到git当中,而是要忽略少数一些文件(比如jar
包、配置文件等),我们可以在我们的目录创建一个.gitignore
文件,git就不会将这些文件放入暂存区,也不会提交(不会加入版本控制系统)。
此时我们可以创建一个.gitignore
文件:
简而言之,放在.gitignore
中的文件会直接被git
无视。
其中,放在.gitignore
中的文件也支持正则表达式。
例如:
*.a
,会忽略所有.a
结尾的文件;!lib.a
,不要忽略lib.a
(排除这个忽略);/test.txt
,仅仅忽略项目根目录下的TODO
文件,不包括子目录下的test.txt
文件;dir1/
,忽略dir1/
目录下的所有文件;dir1/*.txt
無視されますdir1/a.txt
が、含まれませんdir1/dir2/a.txt
。例えば、
dir1/*.txt
無視しdir1
、すべての下.txt
の文書、dir1/*/*.txt
無視されますdir1
下のすべての層で.txt
あり、dir1/**/*.txt
無視するdir1/
のいずれかの層.txt
のドキュメントを。
で.gitignore
使用して#
コメントを示します。
オリジナル:Javaのアーキテクチャノート
フリーのJavaは、Java、Redisの、MongoDBのは、MySQL、カバーし、独自の高度なデータ収集を必要とする飼育係、春の雲を、ダボは、30Gの合計を高い並行性と他のチュートリアルを配布しました。
ポータル: https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q