美文网首页
git基本操作

git基本操作

作者: 冷小谦 | 来源:发表于2018-09-26 00:34 被阅读6次

    刚工作几天,在同事的帮助下,对git有了更深的理解。好久没有写做了,记录一下自己学习的成果。

    初始化仓库

    使用git init命令可以在当前的文件夹中初始化本地仓库,此外会生成.git目录,里面存储着当前目录内容所需的仓库数据。当前文件夹的内容被称为该仓库的工作树

    image.png
    通过ls -a命令我们可以看到.git目录。

    向暂存区添加文件

    如果只是创建文件,文件不会被记入git仓库的版本管理对象中,使用git status查看状态,只会显示untracked files。


    image.png

    要想文件成为git仓库的版本管理对象,需要使用git add将其加入到暂存区。

    如果想将整个文件夹放入暂存区,使用
    git add .
    如果只想放一个文件
    git add x.js
    

    文件添加到暂存区后,使用git status查看状态,出现new file在change to be committed中。


    image.png

    保存仓库历史记录

    git commit可以保存当前暂存区的文件到历史记录中,同时可以记录当前修改。

    git commit -m ""可以记录提交信息
    git commit 记录详细提交信息
    

    如果使用过git commit后,使用git status查看状态则会出现working tree clean。


    image.png

    提交远程仓库

    commit之后就可以提交代码到远程仓库了。第一次需要先让本地仓库和远程仓库产生联系。
    git remote add +"仓库路径git@githb.com",路径可以在github上新建的仓库上找到。其中origin的意思是,将后面一长串的仓库名设置为origin,也就是当前链接的远程仓库的nickname是origin。

    git remote add origin git@github.com:ziqian9206/pythonml.git
    

    随后,就可以将本地仓库的内容推送给远程仓库。

    git push -u origin master
    

    其中,-u是为了将远程origin仓库的master分支设定为本地仓库master分支的上游,此后,如果git pull不加参数就会直接指定操作:本地master分支从远程master分支获取内容。


    image.png

    查看更改前后的差别

    在说分之前,先试一下git diff,首先修改readme.txt(原来为123,现在是1232222)


    image.png

    使用git diff可以查看当前工作树和之前提交的仓库内容之间的区别。
    如果修改两个文件,则在git diff中两个文件都会被修改


    image.png

    这样去看修改信息会非常麻烦,因此最好每次修改和提交相同文件下的内容。

    创建分支

    分支是并行开发非常重要的工具,以下几个命令比较常用:

    git branch查看分支
    git cheackout feature_A切换分支
    git checkout -b feature_A创建切换分支,此时创建的新分支是从当前指针指向的已有分支分离的
    git checkout -b newBrach origin/master如果后面加已有的分支名,说明新分支是从已有分支master基础上分离的
    

    一般来说开发时会保留一个主干分支master作为发布软件的稳定分支,其他的分支作为增删功能的分支,开发新的功能之后,就可以合并到master分支。

    合并分支

    实现featureA之后就可以合并到主干分支master上,注意此时操作都是在本地的,所以指的是本地master。先选择master分支,然后合并feature_A。

    git checkout master
    git merge feature_A
    

    远程创建分支

    本地拥有feature_A之后,远程仓库也可以建立分支,最好保持本地分支和远程分支的名字一样。

    git push -u origin feature_A
    

    这样远程仓库也有一个同样名字的分支了。
    如果要获取远程分支,则

    git checkout -b feature_A(本地分支名) origin feature_A(远程分支名)
    git pull origin(仓库名) master(分支)
    

    远程拉取代码

    本地和远程仓库进行交互,除了有push个pull,还有git fetch。
    当远程分支做出更改,使用git fetch可以将更新信息取回本地,但不进行合并。

    git fetch更新所有分支
    git fetch origin(库名) master(分支)取回master分支的更新
    git merge origin/master就可以合并分支了
    

    使用git fetch+merge方式,要比直接使用git pull拉取更安全可靠。

    保存和恢复进度

    当你在开发新功能的时候,你需要解决其他部分的bug,但新功能不想提交,可以使用git stash命令先把当前进度保存起来。
    git stash保存当前工作进度,把暂存区和工作树的改动保存起来。使用git stash list 保存进度列表,所以git stash可以执行多次。
    git stash pop恢复最新的进度到工作树,并将恢复的工作进度从存储的工作进度列表中清除。

    每天工作

    1.在git commit 之前,先git diff HEAD,查看本次提交和上次提交的区别
    2.每次修改相同文件下的内容,不要混杂。
    3.一定要先拉最新的代码,在进行当日开发。因为你修改的内容上,其他人也已经进行了修改并发布。所以先统一代码,在版本基础上进行修改。

    1. 每天先切换到master分支,然后git fetch查看是否有信息修改
      然后git pull拉下来master的代码。

    相关文章

      网友评论

          本文标题:git基本操作

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