ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

git 基础命令

2020-05-28 23:53:01  阅读:224  来源: 互联网

标签:index git merge 基础 命令 commit 分支 pull


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

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。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:index,git,merge,基础,命令,commit,分支,pull
来源: https://www.cnblogs.com/lakeslove/p/12984842.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有