git基本操作

2018-09-26  本文已影响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的代码。
上一篇下一篇

猜你喜欢

热点阅读