git项目创建及日常管理简单命令

Git是目前世界上最先的分布式版本控制系(没有之一) 。

Linux上安装Git
首先, 你可以git , 看看系有没有安装Git

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

像上面的命令, 有很多Linux会友好地告Git没有安装, 会告你如何安装Git

msysgitWindows版的Git, 从http://msysgit.github.io/, 然后按默认选项安装即可。

安装完成后, 在开始菜里找到“Git”->“Git Bash”出一个似命令行窗口的西, 就Git安装成功!
安装完成后, 需要最后一步置, 在命令行入:

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

注意 git config 命令的 --global 参数, 用了个参数, 表示你台机器上所有的Git仓库都会使用个配置, 当然也可以某个仓库指定不同的用名和Email地址。

建版本

什么是版本呢?版本又名仓库, 英文名repository, 你可以简单理解成一个目
个目里面的所有文件都可以被Git管理起来, 每个文件的修改、 除, Git
都能跟踪, 以便任何刻都可以追踪史, 或者在将来某个刻可以
所以,
建一个版本非常简单, 首先, 选择一个合适的地方, 建一个空目
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit 
第二步, 通 git init 命令把 个目 录变 Git 可以管理的 仓库
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/ 
Git 就把 仓库 建好了, 而且告 你是一个空的 仓库 empty Git repository ) , 心的 者可以 发现 当前目 下多了一个 .git 的目 个目 Git 来跟踪管理版本 的, 没事千万不要手 修改 个目 里面的文件, 不然改乱了, 就把 Git 仓库给 破坏了。

如果你没有看到 .git , 那是因为这个目藏的, 用 ls -ah 命令就可以看

在我们编写一个 readme.txt 文件, 内容如下:

Git is a version control system.
Git is free software. 
第一步, 用命令 git add Git , 把文件添加到 仓库
$ git add readme.txt 
第二步, 用命令 git commit Git , 把文件提交到 仓库
$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt 
简单 一下 git commit 命令, -m 后面 入的是本次提交的 明, 可以 入任意内容, 当然最好是有意 的, 这样 你就能从 记录 里方便地找到改 动记录 git commit 命令 行成功后会告 你, 1 个文件被改 (我 新添加的 readme.txt 文件) , 插入了 行内容( readme.txt 行内容) 。
什么 Git 添加文件需要 add commit 一共 步呢?因 commit 可以一次提交很多文件, 所以你可以多次 add 不同的文件, 比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files." 
们继续 修改 readme.txt 文件, 改成如下内容:
Git is a distributed version control system.
Git is free software.
在, git status 命令看看 果:
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory
# #
modified: readme.txt
# n
o changes added to commit (use "git add" and/or "git commit -a") 
Git readme.txt 被修改了, 但如果能看看具体修改了什么内容, 自然是
很好的。 比如你休假
周从国外回来, 第一天上班 , 已 经记 不清上次怎么修改的
readme.txt , 所以, 需要用 git diff 个命令看看:
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software. 
git diff 名思 就是 difference 示的格式正是 Unix 通用的 diff 格式, 可以从上面的命令 出看到, 我 在第一行添加了一个 “distributed” 单词
知道了 readme.txt 作了什么修改后, 再把它提交到 仓库 就放心多了, 提交修改和提交新文件是一 步, 第一步是 git add
$ git add readme.txt 
没有任何 出。 在 行第二步 git commit 之前, 我 git
status
看看当前 仓库 的状
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
# #
modified: readme.txt
# 
git status , 将要被提交的修改包括 readme.txt , 下一步, 就可以放心
地提交了:
$ git commit -m "add distributed"
[master ea34578] add distributed
1 file changed, 1 insertion(+), 1 deletion(-) 
提交后, 我 再用 git status 命令看看 仓库 的当前状
$ git status
# On branch master
nothing to commit (working directory clean) 

Git知道当前版本是个版本, 在Git中, 用 HEAD 表示当前版本, 也就是最新的提交 3628164...882e1e0 (注意我的提交ID和你的肯定不一) , 上一个版本就是 HEAD^ , 上上一个版本就是 HEAD^^ , 当然往上100个版本写100^ 容易数不来, 所以写成 HEAD~100

小结

要随掌握工作区的状, 使用 git status 命令。

  • 如果 git status 你有文件被修改
  • git diff 可以看修改内容。
  • HEAD 指向的版本就是当前版本, 因此, Git在版本的史之穿梭
  • 使用命令 git reset --hard commit_id
  • 穿梭前, 用穿梭前, 用 git log 可以看提交史, 以便确定要回退到个版本。
  • 要重返未来, 用 git reflog 看命令史, 以便确定要回到未来的个版本
  • 看看readme.txt的内容:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL. 

工作区和存区

工作区(Working Directory
就是你在电脑里能看到的目, 比如我的 learngit 文件就是一个工作区 :
版本 Repository
工作区有一个 藏目 .git 个不算工作区, 而是 Git 的版本 Git 的版本 里存了很多 西, 其中最重要的就是称 stage (或者叫 index ) 的 存区, Git 动创 建的第一个分支 master , 以及指向 master 的一个指 HEAD  

前面 了我 把文件往 Git 版本 里添加的 候, 是分 行的:
第一步是用
git add 把文件添加 去, 实际 上就是把文件修改添加到 存区;
第二步是用
git commit 提交更改, 实际 上就是把 存区的所有内容提交到当前分支。
们创 Git 版本 库时 Git 动为 们创 建了唯一一个 master 分支, 所以,在, git commit 就是往 master 分支上提交更改。 你可以 简单 理解 , 需要提交的文件修改通通放到 存区, 然后, 一次性提交 存区的所有修改。

撤销修改

git checkout -- file 可以 弃工作区的修改:
$ git checkout -- readme.txt
命令 git checkout -- readme.txt 意思就是, 把 readme.txt 文件在工作区的
修改全部撤
里有 种情况:
一种是 readme.txt 自修改后 没有被放到 存区, 在, 撤 修改就回到和版本 一模一 的状
一种是
readme.txt 添加到 存区后, 又作了修改, 在, 撤 修改就回到添加到 存区后的状

commit 之前, 你 发现 问题 。 用 git status 看一下, 修
改只是添加到了
存区, 没有提交:
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
# #
modified: readme.txt
#
Git , 用命令 git reset HEAD file 可以把 存区的修改撤
unstage ) , 重新放回工作区:
$ git reset HEAD readme.txt
Unstaged changes after reset:
M readme.txt 
git reset 命令既可以回退版本, 也可以把 存区的修改回退到工作区。 当我
HEAD , 表示最新的版本。


删除文件

用命令 git rm 掉, 并且 git commit
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d17efd8] remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
在, 文件就从版本 中被 除了。


git log退出方法:英文状态下按q。

猜你喜欢

转载自blog.csdn.net/qq_30507163/article/details/80572910