Git操作

一、git相关概念

  1. git:分布式版本控制系统(Linus用C语言开发);
  2. 版本库(repository):由git管理的一个目录,git可以跟踪每一个文件的修改、删除,即工作区中的.git目录;
  3. 工作区:在电脑上能看到的目录;
  4. 暂存区(stage):存于版本库中;

二、git相关操作

1.git安装

(1)对于Windows而言,从Git官网直接下载安装程序,按默认选项安装即可;

(2)配置name和Email:

git config --global user.name "Name"
git congig --global user.email "Email"

2.创建git仓库:

在所需目录下执行如下命令,目录中产生.git文件夹则创建成功;

git init

3.提交到本地仓库

(1)将要提交的文件添加到暂存区:

git add 文件路径

(2)将缓存区的文件提交到仓库:

git commit -m "提交的说明"

4.查看仓库状态

git status

5.比较文件差异

比较工作区与暂存区的文件差异:

git diff 文件路径

比较工作区与版本库里最新版本的文件差异:

git diff HEAD -- 文件路径

6.查看最近到最远的提交日志

查看commit id、提交人、提交日期、提交说明:

git log

 只查看commit id和提交说明:

git log --pretty=oneline

7.版本回退

回退到过去的一个版本HEAD^,回退两个版本HEAD^^,回退100各版本HEAD~100:

git reset --hard HEAD^

回去到未来的一个版本:

(1)先查找到要回退的版本的commit id,该命令可以查看历史命令:

git reflog

(2)使用commit id回退:

git reset --hard commit_id(不用写全也可以)

8.撤销修改

丢弃工作区的修改,即回到最近一次add或commit的状态:

git checkout -- 文件路径

把还未commit的暂存区的文件撤销重新放回到工作区:

git reset HEAD 文件路径

提交到版本库后可以通过版本回退撤销文件;

9.删除文件

工作区删除文件:

rm 文件名

版本库删除文件:

git rm 文件路径
git commit -m "delete file"

恢复版本库里的文件:

git checkout -- 文件路径

10.添加远程仓库

(1)创建SSH Key(在Windows用户主目录下的.ssh目录中的id_rsa私钥和id_rsa.pub公钥文件):

ssh-keygen -t rsa -C "Email"

(2)在远程仓库(GitHub、GitLab等)中添加id_rsa.pub文件的内容;

(3)在远程仓库中创建一个仓库;

(4)关联远程仓库:

git remote add origin git@github.com:CorlorfulXuan/MyRepo.git

(5)第一次push本地仓库的当前分支到远端仓库的master分支:

git push -u origin master

使用-u参数可以指定默认主机,之后可以直接git push或:

git push 主机名 分支

注:第一次使用clone或push会弹出ssh警告,yes回车即可。

11.删除远程仓库

(1)查看远程库信息:

git remote -v

(2)删除:

git remote rm origin

12.克隆仓库

克隆所有分支:

git clone git@github.com:CorlorfulXuan/MyRepo.git

13.创建分支

(1)创建分支

git branch dev

(2)切换分支

git checkout dev

以上两条命令可以用一条,创建分支并切换到这个分支:

git checkout -b dev

14.查看分支

git branch

15.合并分支

git merge dev

16.删除分支

git branch -d dev

17.解决冲突

当两个分支合并时文件都有新的不一样的提交时,需要手动解决冲突,在提交。

查看分支合并图:

git log --gragh

18.分支管理策略

Git合并分支时会默认使用Fast forward模式,这种模式下删除分支后会丢失分支信息,可以使用如下命令合并分支保留历史分支信息:

git merge --no-ff -m "合并说明" dev

19.bug分支

(1)暂时将工作分支储藏:

git stash

(2)q切换到master分支创建临时分支:

git checkout master
git checkout -b bug_dev

(3)修复bug提交

(4)切换到master分支合并临时分支:

git checkout master
git merge --no-ff -m "merge bug" bug_dev

(5)回到原工作分支:

git checkout dev

(6)查看stash的内容:

git stash list

(7)恢复stash的内容:

git stash apply stash@{0}

(8)删除stash的内容:

git stash drop stash@{0}

第(7)和(8)可以使用一个命令,恢复的同时删除:

git stash pop stash@{0}

(9)将master分支修复的内容同步到正在工作的分支上:

git cherry-pick commit_id

commit_id为修复bug时commit的id。

20.Feature分支

(1)创建一个功能分支:

git checkout -b feature_1

(2)开发并提交;

(3)切换到master分支:

git checkout master

(4)功能取消,强制删除未合并的功能分支:

git branch -D feature_1

21.多人协作

从远程仓库clone时,Git会自动的把master分支和远程的master分支对应起来,远程仓库的默认名称为origin。

一般会推送主分支master、开发分支dev到远程仓库与远程同步,bug分支一般不用推送到远程仓库,feature分支是否推送取决于是否功能时合作开发。

(1)试图推送自己的修改:

git push origin 分支名

(2)如果远程分支比本地分支新,需要先拉取远程分支试图合并,如果当前分支设置了跟踪远程分支,pull会自动抓取后合并该远程分支到当前分支:

git pull

(3)如果有冲突,则需要解决冲突后在本地提交,再次push。

22.关联分支

在本地分支创建和远程分支对应的分支:

git checkout -b 本地分支名 远程仓库名/远程分支名

已有本地分支的情况下,建立本地分支和远程分支的关联:

git branch --set-upstream-to=远程仓库名/远程分支名 本地分支名 

23.rebase操作

可以把本地未push的分支提交历史整理成直线,使得我们在查看历史提交的变化时更容易。

git rebase

24.创建标签

(1)切换到需要打标签的分支:

git checkout 分支名

(2)打标签

默认打在最新提交的commit:

git tag 标签名

打在之前的commit上:

git tag 标签名 commit_id

 创建带有说明的标签:

git tag -a 标签名 -m "说明" commit_id

(3)查看标签

查看所有标签名:

git tag

查看标签信息:

git show 标签名

25.操作标签

删除标签:

git tag -d 标签名

推送单个标签到远程分支:

git push origin 标签名

推送所有标签到远程分支:

git push origin --tags

删除远程的标签:

(1)先删除本地标签;

(2)再删除远程标签:

git push origin :refs/tags/标签名

26.关联多个远程仓库

git remote add github git@github.com:CorlorfulXuan/myrepo.git
git remote add gitee git@gitee.com:CorlorfulXuan/myrepo.git
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值