git的使用和基本概念

git学习

 

git init 创建版本库

git add 文件名 将文件添加到暂存区

git commit -m "备注信息" 将文件提交到本地仓库

git status 用于查看当前版本库的状态。

git log 用于查看历史记录。可以加上--pretty=oneline 减少输出信息。只留下最主要的信息。

git reset --hard HEAD~数字 数字是几就回退到前几个版本,也可以将~数字 换为 ^ 有几个^就代表回退几个版本 当你想要再返回之前版本时需要使用git reflog 命令查看对应把版本的commit id 再使用 git reset --hard 提交id 来回复到之前版本

git diff HEAD -- 文件名 查看版本冲突

git checkout -- 文件名 可以丢弃整个工作区回到没有修改之前的状态,前提是没有加入到暂存区 用版本库里的版本替换工作区的版本

git reset HEAD 文件名 回到加入暂存区之前的状态 再使用git checkout -- 文件名 前提是还没有提交到版本库

git reset --hard HEAD~数字 这种方法可以使文件回到之前的版本 前提是还没有推送到远端

git rm 文件名 用来删除文件。 并且需要git commit -m " " 否则git不知道你删除了文件 但是删除时需要小心,如果你删除了这个文件那么 你只能恢复到最新版本,你会丢失最近一次提交后你修改的内容。

 

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

 

git branch -b dev 创建并切换到dev分支。 相当于 git branch dev 和 git checkout dev 两个命令,git branch 可以查看当前分支。

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

git log --graph 用来查案git分支图

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。 git merge --no-ff -m "merge with no-ff" dev

查看合并历史git merge --no-ff -m "merge with no-ff" dev

 

master 应该是最稳定的版本,也就是只能用来发布新版本,而不能在上面干活,干活都在dev分支上,也就是平时开发用的,每个人都可以有自己的分支,然后时不时的往dev上合并就可以了。

 

bug分支。当需要修复bug的时候先使用git stash保存现场工作 然后创建bug分支 再讲bug分支合并到别的分支上 此时切换回正在开发的自己分支,git stash list 查看暂存 然后git stash pop 恢复工作现场。

future分支 开发一个新feature,最好新建一个分支;

如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

git remote 显示远程库信息 git remote -v 显示更详细的远程库信息

git push origin <name> 用于提交本地仓库到远端

 

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

小结

  • 查看远程库信息,使用git remote -v

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

    ,

    git rebase 可以变基,rebase操作可以把本地未push的分叉提交历史整理成直线 ,将杂乱的git历史变成一条直线

 

  • 命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

  • 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;

  • 命令git tag可以查看所有标签。

  • 命令git push origin <tagname>可以推送一个本地标签;

  • 命令git push origin --tags可以推送全部未推送过的本地标签;

  • 命令git tag -d <tagname>可以删除一个本地标签;

  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

点击github上的fork就可以在自己的账号下克隆一个别人的仓库了,然后再从自己的仓库中下载,这样才能推送到远端要不然没有权限无法推送

 

git设置忽略文件如果是已经设置了忽略文件的,文件你想要强制给它添加到git中 你需要使用git add -f <name> 来强制添加

或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查: git check-ignore -v <name>

.gitignore 文件需要放到版本库中 并且可以对.gitignore文件进行版本控制

还有设置别名和搭建git仓库我就不想看了,链接上有说,累,而且在实际开发中我都是用idea中的git去日常操作,如果你们要是有什么理解不清楚的给你们链接,有git教程。

链接地址   https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值