git 基础命令

我们即将学习的内容将包括如下几个部分(扮演不同角色):

1) Basic Repository Command:每个操纵git的人都需要掌握

2) Individual Developer (Standalone):独立开发者需要掌握

3) Individual Developer (Participant):合作开发者需要掌握

4) Integrator:项目汇总人需要掌握

5) Repository Administration:仓库管理员需要掌握

 

我们都会使用这些命令来完成最基本的工作:

git-init或git-clone来创建git仓库

git-fsck来检查仓库的错误

git-gc用来完成一些琐碎的工作,比如重组或删减。

git-show-branch:可以显示你当前所在的分支以及提交记录。
git-log:显示提交日志
git-checkout或者git-branch:用于切换和创建分支
git-add:用于将修改内容加入到index文件中
git-diff和git-status:用于显示开发者所做的修改
git-commit:用于提交当前修改到git仓库。
git-reset和git-checkout:用于撤销某些修改
git-merge:用于合并两个分支
git-rebase:用于维护topic分支(此处我也不太懂,等完成git学习后转过头来会关注此问题)
git-tag:用于标记标签。
bogon:aha lakeslove$ git show-branch
! [ahaback] 这是ahaback目录下的文件
 * [master] 解决pull引起的冲突
  ! [test] 添加输入说明,并重新编译
---
 -  [master] 解决pull引起的冲突
+*  [ahaback] 这是ahaback目录下的文件
 *  [master^] 删除程序开始
+*  [master~2] 在test2中编译
+*  [master~3] 编译
--  [master~4] Merge branch 'test'
+*+ [test] 添加输入说明,并重新编译

git checkout — curses/ux_audio_oss.c //用于取消对curses/ux_audio_oss.c文件的修改

git reset –soft HEAD^ //head回复到上一次commit的代码。–soft选项表示不改动index file和working tree中的内容,

git reset HEAD^ //head和index回复到上一次commit的代码。不改动working tree中的内容

git reset --hard HEAD^ //working tree、index、head 都回复到上一次commit到代码

 

 

git-clone:复制别人的git仓库到本地

git-pull和git-fetch:保持和别人的git仓库的同步更新

git-push:共享方式。等同于CVS方式下的共享。

git-format-patch:利用邮件形式提交补丁。等同于内核开发方式。

 

我们总结的将是疑难知识点。
我提炼出来的需要解决的疑难问题包括:
1 commit和commit -a的区别
2 log -p的中-p的作用
3 merge的用法及参数用法
4 fetch的用法
5 pull的用法
6 commit信息详解
7 HEAD的含义及相关用法,ORIG_HEAD的用法以及其他常量的使用方法
8 tag的用法

log -p的中-p的作用

git log:显示commit日志

git log -p:不仅显示commit日志,而且同时显示每次commit的代码改变。

merge的用法及参数用法
git-merge主要用于将两个或两个以上的开发分支进行合并。
git merge branchname 用于将branchname分支合并到当前分支中。(如果合并发生冲突,需要自己解决冲突)
当merge命令自身无法解决冲突的时候,它会将工作树置于一种特殊的状态,并且给用户提供冲突信息,以期用户可
以自己解决这些问题。当然在这个时候,未发生冲突的代码已经被git merge登记在了index file里了。如果你这个时候使
用git diff,显示出来的只是发生冲突的代码信息。
在你解决了冲突之前,发生冲突的文件会一直在index file中被标记出来。这个时候,如果你使用git commit提交的话,
git会提示:filename.txt needs merge
在发生冲突的时候,如果你使用git status命令,那么会显示出发生冲突的具体信息。
在你解决了冲突之后,你可以使用如下步骤来提交:
第一步:git add filename.txt
第二步:git commit
如果你希望撤销一个分支到merge前的状态,那么使用如下命令:
$ git reset –hard HEAD //–hard表示将working tree和index file都撤销到以前状态
在这先偷偷的告诉你,–soft表示只撤销commit,而保留working tree和index file的信息,–mixed会撤销commit和
index file,只保留working tree的信息。OK,如果你能记住–hard、–mixed和–soft的区别,那最好,如果记不住,也不用
自责啦,以后还会讲到。
fetch的用法
git-fetch用于从另一个reposoitory下载objects和refs。
命令格式为:git fetch <options> <repository> <refspec>…
其中<repository>表示远端的仓库路径。
其中<refspec>的标准格式应该为<src>:<dst>,<src>表示源的分支,如果<dst>不为空,则表示本地的分支;如果
为空,则使用当前分支。
git fetch /home/bob/myrepo master:bobworks :用于从bob的工作目录的master分支下载objects和refs到本地的
bobworks分支中。
5
pull的用法
git-pull的作用就是从一个repository取出内容并合并到另一个repository中。
git pull是git fetch和git merge命令的一个组合。
git pull /home/bob/myrepo 这个命令的意思是从此目录中取出内容并合并到当前分支中。
git pull .就相当于git merge。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-05-28 23:46  lakeslove  阅读(209)  评论(0编辑  收藏  举报