软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 研发管理 -> Git使用教程 -> 正文阅读
研发管理 最新文章
拉格朗日乘数
maven之可视化项目依赖(Visualizingdepend
mac效率工具
Atitit.css规范bem项目中CSS的组织和管理
git入门
Asimplemodelfordescribingbasicsourcesofp
Linux进程管理浅析
我的openwrt学习笔记(十九):linux便捷开
2、微控制器选择
Git使用手册:为Git仓库创建Submodule

[研发管理]Git使用教程

  2016-04-01 16:59:07

内容来自于:廖雪峰的官方网站--git详细教程

常用终端命令:


  • mkdir; git init                 //创建一个仓库repository,并init加入可跟踪配置.git
  • gitadd readme.txt         // 把文件添加到仓库,可反复多次使用,添加多个文件。addcommit一起使用,不可分离。
  • gitcommit -m "wrote a readme file”     //-m后面输入的是本次提交的说明
  • gitstatus                       //可以让我们时刻掌握仓库当前的状态,工作区和版本库就不一致时就会有信息出现。
  • gitdiff readme.txt          //查看修改内容,查看difference,显示的格式是Unix通用的diff格式
  • gitlog                            //从最近到最远的提交日志,--pretty=oneline一行简要显示。commit idSHA1计算,十六进制表示。
  • git reflog                         //用来记录你的每一次命令,即使回退,重启电脑,对于未来的操作也会记录下版本号,可恢复未来
  • gitreset --hard HEAD^    //回退到上一个版本,上上一个版本:HEAD^^,往上100个版本:HEAD~100
  • gitreset --hard 3628164   //指定回到未来的某个版本。hard参数后面是commit id,版本号前几位就可以了,Git会去找



  • gitcheckout -- file         //可以丢弃工作区的修改或删除,文件回到最近一次gitcommitgit add时的状态,例如修改了还没add
  • gitreset HEAD —file      //暂存区的修改撤销掉(unstage),重新放回工作区,例如已经add了,但是还没commit
  • gitrm test.txt                               //确定要从版本库中删除该文件
  • gitcommit -m "remove test.txt”   //修改完记得commit,无论是删除还是修改

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

远程仓库




    本地Git仓库和GitHub仓库之间的传输是通过SSH加密:
  • 第一步:用户主目录,ssh-keygen -t rsa -C"youremail@example.com”,创建.ssh目录,包含了id_rsaid_rsa.pub这两个文件
  • 第二部:GitHub账户中,“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。

 
    先有本地库,后有远程库的时候,关联远程库步骤:
  • gitremote add origin git@github.com:MengyuMa/learngit.git   //远程库的名字就是origin,这是Git默认的叫法
  • gitpush -u origin master  // -u参数,本地的分支内容推送的远程新的分支且关联起来,在以后可以简化命令。
  • gitpush origin master      //从现在起,只要本地作了提交,就可以通过命令
  • gitclone git@github.com:MengyuMa/Algorithm.git       //从远程库克隆


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

分支管理


  • gitcheckout -b dev          //创建dev分支,然后切换到dev分支     ==     git branch dev   and    git checkout dev
  • gitbranch                       //查看当前分支,列出所有分支,当前分支前面会标一个*
  • git addreadme.txt 
  • git commit-m "branch test"
  • gitcheckout master   //切换回master分支查看readme.txt,刚才添加的内容不见,因为那个提交是在dev分支上,而非master分支
  • gitmerge dev              //合并指定分支到当前分支
  • gitbranch -d dev         //合并后就可以放心的  删除  dev分支了

      

分支管理策略




    Git<<<<<<<=======>>>>>>>标记出不同分支的内容
  • gitlog --graph --pretty=oneline --abbrev-commit      //带参数--graphgitlog也可以看到分支的合并情况,分支合并图



  • git merge--no-ff -m "merge with no-ff" dev

    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并,如下图



Bug分支




    修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再gitstash pop,回到工作现场。
  • git stash
  • gitcheckout master
  • gitcheckout -b issue-101
  • git addreadme.txt 
  • git commit-m "fix bug 101"
  • gitcheckout master
  • git merge--no-ff -m "merged bug fix 101" issue-101
  • git branch-d issue-101
  • gitcheckout dev
  • git stashlist
  • git stashpop                //git stash apply   +      git stash drop

  • gitstash apply stash@{0}         //多次stash,恢复的时候,先用gitstash list查看,然后恢复指定的stash

Feature分支




    开发一个新feature,最好新建一个分支;如果要丢弃一个没有被合并过的分支,可以通过gitbranch -D <name>强行删除。
 

多人协作:


  • gitremote    //查看远程库的信息,
  • gitremote -v    //显示更详细的信息,显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址
  • gitpush origin master    //推送分支

    PSmaster分支是主分支,要时刻与远程同步;dev分支是开发分支,所有成员在此工作,也需要与远程同步;bug分支没必要推到远程;feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
 
  • gitclone git@github.com:michaelliao/learngit.git           //远程库clone只看到本地的master分支,因此
  • gitcheckout -b dev origin/dev                     // 必须创建远程origindev分支到本地,这个命令创建本地dev分支:
  • gitbranch --set-upstream dev origin/dev     //必须创建远程origindev分支到本地,于是他用这个命令创建本地dev分支
  • git pull
  • git commit-m "merge & fix hello.py"
  • git pushorigin dev

    PS:多人协作的工作模式通常是这样:git push origin branch-name推送自己的修改;推送失败,则因为远程分支比你的本地更新,需要先用gitpull试图合并;如果合并有冲突,则解决冲突,并在本地提交,然后git push origin branch-name;如果gitpull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-nameorigin/branch-name
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

标签


  • gittag <name>            //用于新建一个标签,默认为HEAD,也可以指定一个commitid
  • gittag -a <tagname> -m "blablabla…”       //可以指定标签信息;
  • gittag -s <tagname> -m "blablabla…”        //可以用PGP签名标签;
  • gittag                                                         //可以查看所有标签。
  • gitpush origin <tagname>                         //可以推送一个本地标签;
  • gitpush origin --tags                                 //可以推送全部未推送过的本地标签;
  • gittag -d <tagname>                                 //可以删除一个本地标签;
  • gitpush origin :refs/tags/<tagname>          //可以删除一个远程标签

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

配置


  • git config--global color.ui true
  • git config--global alias.st status
  • git config--global alias.co checkout
  • git config--global alias.ci commit
  • git config--global alias.br branch
  • gitconfig --global alias.unstage 'reset HEAD’   //把暂存区的修改撤销掉(unstage),重新放回工作区
  • gitconfig --global alias.last 'log -1’                  //让其显示最后一次提交信息:
  • git config--global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'--abbrev-commit"

    PS--global是全局参数,这台电脑的所有Git仓库下都有用,当前用户的Git配置文件放在用户主目录下.gitconfig
 

Fork




    在GitHub上,可以任意Fork开源仓库;自己拥有Fork后的仓库的读写权限;可以推送pull request给官方仓库来贡献代码。
 

搭建Git服务器




    详细教程再搜吧。


 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

忽略功能




    Git工作区的根目录下特殊的.gitignore文件,然后把要忽略的文件名填进去,GitHub已经为我们准备了各种配置文件,组合就可以使用,所有配置文件可以直接在线浏览:https://github.com/github/gitignore。忽略文件的原则是:操作系统自动生成的;编译生成的中间文件、可执行文件;忽略你自己的带有敏感信息的配置文件.gitignore也提交到Git,检验.gitignore的标准是gitstatus命令是不是说working directory clean
 

.gitignore配置语法




1、配置语法:
  • 以斜杠“/”开头表示目录;
  • 以星号“*”通配多个字符;
  • 以问号“?”通配单个字符
  • 以方括号“[]”包含单个字符的匹配列表;
  • 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
  • git对于.ignore配置文件是按行从上到下进行规则匹配的,如果前面的规则匹配的范围更大,则后面的规则将不会生效;

2、示例:
1)规则:fd1/*
 说明:忽略目录 fd1下的全部内容;不管是根目录下的 /fd1/目录,还是某个子目录/child/fd1/目录,都会被忽略;
2)规则:/fd1/*
 说明:忽略根目录下的 /fd1/目录的全部内容;
3)规则: /*
                   !.gitignore
                    !/fw/bin/
                    !/fw/sf/
                    说明:忽略全部内容,但是不忽略 .gitignore文件、根目录下的 /fw/bin/ /fw/sf/目录;
上一篇文章      下一篇文章      查看所有文章
2016-04-01 16:58:54  
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 人民的名义 人民的名义在线看 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图
中国文化英文 多播视频 装修知识库
2017-4-23 22:00:33
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --