美文网首页
github--(17/12/2015)

github--(17/12/2015)

作者: Girl_endless | 来源:发表于2015-12-18 19:52 被阅读29次

    github和git是什么关系

    git是一种版本控制系统。跟svn、cvs是同级的概念。

    github是一个网站,给用户提供git服务。这样你就不用自己部署git系统,直接用注册个账号,用他们提供的git服务就可以。


    git的下载,在windows:https://git-for-windows.github.io/

    安装完成后,还需要最后一步设置,在命令行输入:

    $git config --global user.name"Your Name"$git config --global user.email"email@example.com"


    初始化一个Git仓库,使用git init命令。

    添加文件到Git仓库,分两步:

    第一步,使用命令git add ,注意,可反复多次使用,添加多个文件;

    第二步,使用命令git commit,完成。


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

    如果git status告诉你有文件被修改过,用git diff可以查看修改内容。


    git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file。

    如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:


    HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。


    前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

    第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

    你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。


    手动把文件恢复到上一个版本的状态。如果用git status查看一下:

    你可以发现,Git会告诉你,git checkout -- file可以丢弃工作区的修改:

    命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    总之,就是让这个文件回到最近一次git commit或git add时的状态。

    文件内容果然复原了。

    git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

    Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:


    命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

    1.在工作区

    方法:直接checkout撤销操作

    2.在暂存区

    方法:先reset HEAD退回操作区,再checkout撤销操作

    3.在版本区

    方法:只能版本回退




    $ git config --global user.name "GirlPowerwndless"

    $ git config --global user.email "854316075@qq.com"

    $ mkdir learngit

    $ cd learngit

    xiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ pwd

    /c/Users/xiaotinh/Music/learngitxiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ git init

    Initialized empty Git repository in C:/Users/xiaotinh/Music/learngit/.git/xiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ git add readme.txt

    xiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ git commit -m "wrote a readme file"

    [master (root-commit) dab77dc] wrote a readme file 1 file changed, 2 insertions(+) create mode 100644 readme.txtxiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ git status

    On branch masterChanges not staged for commit:  (use "git add..." to update what will be committed)  (use "git checkout --..." to discard changes in working directory)        modified:  readme.txtno changes added to commit (use "git add" and/or "git commit -a")xiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ git diff readme.txt

    diff --git a/readme.txt b/readme.txtindex d8036c1..013b5bc 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.\ No newline at end of filexiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ git add readme.txt

    xiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)$ gig statusbash: gig: command not foundxiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)$ git statusOn branch masterChanges to be committed:  (use "git reset HEAD..." to unstage)

    modified:  readme.txt

    xiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ git commit -m "add distributed"

    [master 455f13b] add distributed

    1 file changed, 1 insertion(+), 1 deletion(-)

    xiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    $ git status

    On branch master

    nothing to commit, working directory clean

    xiaotinh@CNBEIN0L062666 MINGW64 ~/Music/learngit (master)

    前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

    第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    手动把文件恢复到上一个版本的状态。如果用git status查看一下:

    命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

    相关文章

      网友评论

          本文标题:github--(17/12/2015)

          本文链接:https://www.haomeiwen.com/subject/rnnuhttx.html