廖雪峰官方网站--Git教程:
本文内容来自对廖雪峰老师Git教程总结。
创建版本库
初始化一个Git仓库,使用git init 命令。
添加文件到Git仓库:
- 第一步,使用命令
git add 。
- 第二步,使用命令
git commit -m "xx" ,完成。
版本回退
HEAD 指向的版本就是当前的版本。使用命令git reset --hard commit_id 。
回到上个版本git reset --hard HEAD^ 。 回到上上个版本HEAD^^ 。 回到往上10个版本HEAD~10 。
- 穿梭前,用
git log 可以查看提交历史。
- 重返未来,用
git reflog 查看命令历史。
撤销修改
- 使用
git checkout -- 可以丢弃工作区的修改。
- 如果已经使用
git add 将修改的文件添加到暂存区了,还未提交。
可以使用git reset HEAD 把暂存区的修改撤销掉,重新放回工作区。 再次使用git checkout -- 丢弃工作区的修改。
- 如果修改了文件,还从暂存区提交到了版本库,那就使用版本回退。
删除文件
使用文件管理器或者rm file 命令删除文件。
但是,你发现你删错了,可以使用:git checkout -- file 来恢复工作区。 如果你要真的删除可以使用git rm file 然后提交修改就好了。
git rm file 是同时删除工作区的文件,并将删除的动作提交到暂存区。
添加远程仓库
要关联一个远程库,使用命令git remote add origin git@github.com:账户/仓库名称.git 。
第一次用git push -u origin master 命令推送master分支的所有内容。
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master 推送最新修改。
创建和合并分支
master 分支是一条线,Git用master 指向最新的提交,再用HEAD 执行master ,就能确定当前分支,以及当前分支的提交点。
当我们创建新的分支,例如dev 时,Git新建了一个指针叫dev ,指向master 相同的提交,再把HEAD 指向dev ,就表示当前分支在dev 上:
- 查看分支:
git branch
- 创建分支:
git branch
- 切换分支:
git checkout
- 创建+切换分支:
git checkout -b
- 合并某分支到当前分支:
git merge
- 删除分支:
git branch -d
分支冲突解决
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> dev
当发生冲突时,Git会用这样的方式标记处不同分支的内容,我们只需要修改后重新提交即可。
使用带参数的git log 可以看到分支的合并情况:
通常,Git会用Fast forward 模式,但在这种模式下,删除分之后,会丢掉分支信息。
如果要强制禁用Fast forward 模式,Git就会在merge 时生成一个新的commit ,这样,从分支历史上就可以看出分支信息。
$ git merge --no-ff -m "merge with no-ff" dev
可以看到HEAD 已经不是切换指针而是有了一个新的版本。
bug分支
当项目发现了bug我们可以创建一个bug分支,修复完成后合并分支,然后将临时分支删除。 但是正在dev上进行的工作还没有提交...
你可以使用git stash 将当前的工作现场“储藏”起来,等以后恢复现场后继续工作。(储藏之前你要保证将新的内容已经加到了缓存区了,也就是执行了git add 指令。)
查看工作现场:
$ git stash list
使用git stash pop 恢复的同时删除stash内容。
多人协作
多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name 推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull 试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name 推送就能成功!
如果git pull 提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name 。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
标签管理
使用git tag 创建标签
$ git tag v1.0
可以使用命令git tag 查看所有标签
$ git tag
为之前的版本打上标签
$ git tag
删除标签
$ git tag -d v1.0
如果推送某个标签到远程,使用命令git push origin 或者一次性推送全部尚未推送到远程的本地标签:
$ git push origin --tags
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.9
然后,从远程删除。删除命令也是push,但是格式如下:
$ git push origin :refs/tags/v0.9
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|