刚开始使用git 的时候,总是‘担惊受怕’ --因为大家一起的话--怕把大家代码‘毁了’····· 后来发现,完全没必要~~~=_= git 管理代码好“冗余”~哈哈
【写在开头:使用git超级推荐zsh ~ 用下就知道啦~】
首先,git 用分支 branch 的概念来管理代码, 不同分支代码可以不一样。
一般公司的代码一般至少要有一个master 分支,这个分支大多数对应线上代码~
还会有一个 开发 develop分支,用来给小组人开发~
一般还会有好多其他分支的。
分支又分为远程分支和本地分支。 远程分支origin/branchA 就是在远程服务器上,大家都可以看到的分支。本地分支就是仅自己可以看到的分支。
分支查看命令:
git branch -r
本地分支查看:
git branch
查看所有分支:
git branch -a
你要开发一个功能,之后要合并到不止一个分支。(指向合并自己的代码到多个分支,因为develop上可能有队友不想要合并的)
所以,对于代码不是很少的开发,建议都建一个自己的分支(如果不希望让大家都看到这个分支,可以是本地分支。)
分支的建立:
git branch mybranch
然后切换到这个新的分支:
git checkout mybranch
切换到新的分支之后,准备coding了~~~
如果这个分支可以push到远程,可以在代码修改之后先把分支push到origin:
git push origin mybranch
首先,你看到的本地这些文件属于 【工作区】。
为了防止代码的丢失,建议及时提交代码。 提交代码分为两部分,将本地【工作区】的文件 添加到 【仓库】stage,然后从仓库里commit到 【版本库】。
虽然要及时提交代码,但是我并不觉得频繁commit会很好,我们可以多次修改了好多代码 将他们及时 添加到 【仓库】 ,然后一次性commit 到 本地的 【版本库】。
查看本地有哪些文件做了修改:
git status
查看修改的内容:
git diff
然后将列出的修改过的文件添加到本地仓库:
git add ./test/test.php
git add new-test.php
在提交之前可以通过下面的命令查看到底要提交什么:
git diff HEAD
然后叫仓库中多次添加的修改一次性commit:
git commit -m "Modify: xxxxxcommentxxxxx"
ps: -m 后面的评论,最好写仔细,这样利于后面出问题的时候执行撤销等操作。
【比较操作总结“】
因为不是可视化界面的,很多时候会想比较本地文件与xxx的不同:
a: 比较当前分支与develop的不同: git diff origin/develop
b: vim形式比较当前某个文件与develop分支这个文件的区别: git difftool develop test.php
ok,接下来可以查看历史提交记录: git log
ok,刚才进行了一次提交,但是你后悔了,想撤销刚才的操作: git reset --hard HEAD^
这个命令只是对当前分支,且本地分支 起作用。
之后本地工作区文件就回退到上次之前的版本了。
可以再次通过 git log 查看,刚才提交的信息已经没有了。
如果想回到上上次或更早的版本的话,可以直接根据 commit_id 来实现。 commit_id 可以通过git log 查看具体某次提交对应id。(所以commit的时候要写好comment哦
得到commit_id之后, 姐可以使用 git reset --hard commit_id
来实现版本的任意回退了
有了回到过去,就会有回到未来。git reflog 命令=========>不常用, 略。 因为我大多想退回未来的时候,是想得到最新代码时候 git pull 就ok了。。。
如果本地某个文件被改坏了,但是又不想用git pull 覆盖所有的改动文件。可以使用 git checkout -- urfile
来实现某个文件的单独更新。 notice: -- 和 urfile 直接有空格。
接下来,所有代码在本地这个分支提交后,要将其合并到所需要合并的分支 ,
git checkout 切换到想要合并的分支 git merge urbranch
本地分支使用完之后就可以删除了。因为develop已经被更新好多版本,如果还需要自己的分支,只需要git checkout 到develop分支,git pull 更新下代码 重新建立一个分支就ok啦。 新建分支,一般称为 拉取分支; 新建分支的时候,所在的分支就是 从哪里拉取分支。 所拉取的分支跟这个分支最开始是完全一样的。
如果分支被push到过远程分支,使用如下命令删除这个远程分支:
git push origin --delete urbranch
之后,本地这个分支仍存在,可以使用如下命令删除本地这个分支:
git branch -d urbranch
如果本地这个分支仍有改动,提示无法删除的时候,可以强制删除:
git branch -D urbranch
============
以上仅供学习整理使用,如有错误,还请核实。