总结git 使用

初始化代码库

新建项目后,初始化代码库

git init
git add README.md
git commit -m "first commit"
git remote add origin xxx  // xxx 代表从github网站获得的代码库网址, 此处定义origin 代表的代码库,origin 指向
git push -u origin master // -u 参数可以不要,但是就要加入下面的git branch 命令,指定关联的远端分支 (是否加-u 应该是 git push current 和 git push upstream 的区别,见资料2)
git branch --set-upstream-to=origin/<branch> master // 将本地版本与远端版本设置为关联的远端分支,使得git push 不用再带任何参数 

资料1:git branch 资料
资料2:git push 资料

本地提交代码

git add file_name
git commit -m "comment infomation"
// 如果补充的提交则执行下面命令
git commit --am
git push origin develop/branch_name

分支建立与删除

git branch -b new_branch_name // 建立本地分支
git push origin new_branch_name:new_branch_name // 在远端建立一个一样的分支
git branch -D delete_branch_name // 删除本地分支
git push origin :delete_branch_name // 删除远端分支, 格式与删除tag一样

本地代码库更新(git fetch 、git merge、git rebase、git pull)

多人协同开发的场景,远端代码更新后,本地合并远端的修改。

  • git fetch 主要是拉去远端分支的修改,以及新建分支信息、tag信息。同时更新
    本地存储的FETCH_HEAD指针指向各个分支最新的commit_id.

  • git merge 将本地分支衍合,会产生一个新的提交,新提交的父节点是两个合并的分支。使用 --no-ff 参数可以达到提交记录的完整性,会保留合并分支的所有commit id。

  • git pull:基本等同git fetch + git merge的结果

1、git fetch只会将本地库所关联的远程库的commit id更新至最新
2、git pull会将本地库更新至远程库的最新状态
所以 git fetch 和 git merge 共同效果并不完全等同于 git pull

  • git rebase : 将衍合的修改在指定分支回放一次产生一个新的修改,使用 -i 指定commit id 可以达到整合提交记录的作用。此处存在一个情况:使用 git rebase -i 后会在指定commit id 后产生一个新的提交,原有的提交记录会被删除,若是原有提交已经提交到远端,此时git push 会出现错误,需要使用git push -f 命令,-f是一个比较危险的操作,它会强制修改远端的提交记录。

git origin 的意义
一本比较好的git书: progit

比较分支之间的差异

git log master..orgin/master // 显示从master到origin/master的差异commit_id
git diff branch1 branch2 // 显示出所有有差异的文件的详细差异
git diff branch1 branch2 文件名(带路径)   //显示指定文件的详细差异
git diff branch1 branch2 --stat   //显示出所有有差异的文件列表

推tag信息

git push tags HEAD:refs/tags/tag_num // tag_num 用指定的编号替代
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值