git 常见反馈 记录

有错误和改进的地方望留言,谢谢 : )html

顺便推荐一下,git入门教程git

图片描述


git status // 用 git status 查看一下当前状态
# Untracked files: // 在 Untracked files 下,表示未被跟踪,未跟踪的文件意味着Git在以前的快照(提交)中没有这些文件。
# (use "git add <file>..." to include in what will be committed) // 可使用 git add 命令添加到暂存区。
#
# readme.md编辑器


git add readme.md // 添加文件到(index) 暂存区,没有反馈信息,Unix的哲学“没有消息就是好消息”,说明添加成功。ide


$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: readme.md
只要在 Changes to be committed 这行下面的,就说明是已暂存状态,但尚未提交。若是此时提交,那么该文件此时此刻的版本将被留存在历史记录中。ui


$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: readme.md
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
#
# modified: benchmarks.rb
文件 benchmarks.rb 出如今 Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但尚未放到暂存区。要暂存此次更新,须要运行 git add 命令(这是个多功能命令,根据目标文件的状态不一样,此命令的效果也不一样:能够用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等)。spa


编辑了一个文件,添加到暂存区,而后再编辑一下,会出现下面的状况
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: README
# modified: benchmarks.rb
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
#
# modified: benchmarks.rb
实际上 Git 只不过暂存了你运行 git add 命令时的版本,若是如今提交,那么提交的是第一次修改的版本,而非当前工做目录中第二次修改的版本。因此,运行了 git add 以后又做了修订的文件,须要从新运行 git add 把最新版本从新暂存起来。3d


git commit // 不加 -m 参数,这种方式会启动文本编辑器以便输入本次提交的说明。(默认会启用 shell 的环境变量 $EDITOR 所指定的软件,通常都是 vim 或 emacs。固然也能够按照第一章介绍的方式,使用 git config --global core.editor 命令设定你喜欢的编辑软件。)
若是启用的是vim,打开后光标所在行就是输入行,按 i 进入输入模式(在光标所在行插入内容),输入内容不用带单引或双引,按 Esc 退出输入模式,按 Shift + : 进入命令模式,输入 wq 保存并退出,也能够不输入内容,git 会默认显示一段说明。
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: README
# modified: benchmarks.rb
能够看到,默认的提交消息包含最后一次运行 git status 的输出,放在注释行里,另外开头还有一空行,供你输入提交说明。你彻底能够去掉这些注释行,不过留着也不要紧,多少能帮你回想起此次更新的内容有哪些。(若是以为这还不够,能够用 -v 选项将修改差别的每一行都包含到注释中来。)退出编辑器时,Git 会丢掉注释行,将说明内容和本次更新提交到仓库。


git commit -m 'add a file' // 提交一个被修改文件到库,返回以下信息
[master (root-commit) cb926e7] wrote a readme file
1 file changed, 2 insertions(+) // 一个文件被修改,两个插入
create mode 100644 readme.md // 生成 commit id 100644 这个id是id的前几位,后面的没显示
提交后它会告诉你,当前是在哪一个分支(master)提交的,本次提交的完整 SHA-1 校验和是什么(463dc4f),以及在本次提交中,有多少文件修订过,多少行添改和删改过。


git diff readme.md // 当用 git diff 查看详细信息,反馈以下信息
diff --git a/readme.md b/readme.md
index 46d49bf..9247db6 100644
--- a/readme.md // 原文件
+++ b/readme.md // 添加东西后的文件
@@ -1,2 +1,2 @@ // -1,2 被改变行1,共2行 +1,2在改行增长了东西,共2行
-Git is a version control system. // 被改变行
+Git is a distributed version control system. // 在该行添加了 distributed
Git is free software.


git status // 提交后再查看状态
# On branch master
nothing to commit (working directory clean) // 这说明你如今的工做目录至关干净。换句话说,全部已跟踪文件在上次提交后都未被更改过。此外,上面的信息还代表,当前目录下没有出现任何处于未跟踪的新文件,不然 Git 会在这里列出来。最后,该命令还显示了当前所在的分支是 master,这是默认的分支名称,实际是能够修改的。


我在 dev 分支上修改了一个文件,暂存,提交,再切换到另外一个分支
git checkout master // 切换到主分支
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit // git会说,当前 master 分支比远程的master分支要超前1个提交。


下面是合并两个分支时,有冲突发生的时反馈以下形式信息

git merge feature // 合并叫 feature 的分支到当前分支上
Auto-merging readme.md // 自动合并 readme.md
CONFLICT (content): Merge conflict in readme.md // 合并时产生冲突
Automatic merge failed; fix conflicts and then commit the result. // 自动合并时失败,解决冲突后提交。

git 会自动把冲突的地方用 <<<<<<<=======>>>>>>> 这样的形式标出来
而且合并后的文件,表示为添加的modifile文件,咱们要作的就是,把冲突文件改好,再 git add, git commit
HEAD 表明被合并分支
Git tracks changes of files.
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

相关文章
相关标签/搜索