写点什么

版本管理工具 git 的使用总结

作者:TimeFriends
  • 2022 年 8 月 12 日
    北京
  • 本文字数:3853 字

    阅读完需:约 13 分钟

版本管理工具git的使用总结

毫无疑问,Git 是当下最流行、最好用的版本控制系统。Git 属于分布式版本控制系统,相较于 Subversion 等集中式版本控制系统有很明显的优势。对于我们开发人员来说,熟练使用 Git 是最基本的技能之一。那么,今天就来说一下在开发工作中,使用到的 Git 的最基本、最常用的功能有那些?“简单好用


git 官网:https://git-scm.com/downloads


在 git 安装好之后,还需要做注册一个 github 账号,作为远程仓库,之后需要做一些配置:


这里一跳而过,不多说,完成之后,我们就可以使用 git 了。


01


git 分区


工作区:就是我们打开文件夹所能看到的内容,比如windows系统盘下面的某个文件夹,就可以看做是一个工作区。
缓存区:就是需要提交的那部分文件
版本库:就是已经提交,被纳入版本控制之列的文件
工作区有一个隐藏的目录.git,这个不算工作区,而是Git的版本库
git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支 master,以及指向 master的一个指针叫 HEAD 。
复制代码


02


git 的使用--基本操作


在本地创建文件夹,切换进入文件夹,开启 git 命令窗口,相关操作的命令如下:


(1)初始化 git 仓库 git init


git add 文件名 #将工作区的文件添加到缓存区中


git commit -m “注释” #将缓存区的文件内容提交到版本库中


(2)添加文件到仓库  git add 文件名
(3)提交代码到仓库 git commit -m '注释'
(4)push代码到服务器 git push origin master
(5)查看分支:git branch
(6)创建分支:git branch <分支名>
(7)切换分支:git checkout <分支名>
(8)创建+切换分支:git checkout -b <分支名>
(9)合并某分支到当前分支:git merge <分支名>
(10)删除分支:git branch -d <分支名>
(11)git log --graph命令可以看到分支合并图。
(12)查看远程库信息,使用git remote -v;
(13)本地新建的分支如果不推送到远程,其他开发者是看不到的,从本地推送分支,使用git push origin 自己的分支名,如果推送失败,先用git pull抓取远程的新提交;
(14)在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;(branch-name:本地分支名,也就是自己的分支)
(15)建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
(16)从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
(17)git clone 远程git地址 : 克隆一个远程项目
(18)git status 查看文件的状态,所谓文件状态的变化就是文件在工作区,缓存区,版本库之间不断的迁移
git status -u 查看状态
(19)git merge --no-ff -m '注释说明' 自己的分支名 将自己的分支代码合并到开发分支上
(20)让git显示颜色:git config --global color.ui true
(21)要关联一个远程库,使用命令
git remote add origin 远程仓库地址,比如:
git remote add origin https://github.com/JavaCodeMood/study_python_demo.git
复制代码


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


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


(22)查看远程服务器的相关信息:git remote -v


(23)git remote show origin(别名) 也可以查看远程服务器的相关信息


03


git 的使用--快照


(1)git log 查看提交的日志


(2)gitk 以图形化的方式展现提交的日志


(3)git log -1 查看最近的一次提交


(4)git log -2 查看最近的两次提交


(5)git log --oneline 查看提交的日志,一行显示


(6)git log --oneline --graph 查看提交的日志


(7)git log -1 -p 查看最近的一次提交


(8)git reflog 显示你所使用过的每一条命令


(9)git log --graph --pretty=oneline --abbrev-commit 查看提交的日志信息


04


git 的使用--版本回退


在 Git 中,用 HEAD 表示当前版本,也就是最新的提交 commit id``(提交码),上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,当然往上 100 个版本写 100 个^比较容易数不过来,所以写成 HEAD~100。


(1)从当前版本回退到上一个版本:git reset --hard HEAD^


(2)根据提交码进行回退:git reset --hard d302ae7 提交码取前面 7 位就够了


(3)git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区


05


git 的使用--版本差异


(1)使用 git diff 来比较工作区与缓存区之间的差异


(2)使用 git diff --cached 来比较缓存区与版本库之间的差异


(3)使用 git diff HEAD 来比较工作区与版本库之间的差异


(4)git diff 文件名 #查看某个文件在工作区与缓存区之间的差异


(5)git diff HEAD -- filename 命令可以查看工作区和版本库里面最新版本的区别


(6)git diff 远程开发分支名 自己的分支名:查看自己的分支与远程开发分支有什么不同


(7)git diff origin/develop develop 查看开发分支有什么不同(develop:开发分支名)


06


git 的使用--历史版本


(1)使用 git checkout 从缓存区中取出文件;也可以使用 git checkout 取出缓存区的状态


(2)使用 git checkout HEAD 来取出版本库中的状态,它会做两步操作:


第一步:使用版本库中的文件来覆盖缓存区


地二步:使用版本库中的文件来覆盖工作区


(3)git checkout -- . 取出当前目录下的所有历史版本


(4)git checkout HEAD 文件名 从版本库中取出某个文件


(5)git checkout -- 文件名 丢弃工作区的修改,意思就是,把 该文件在工作区的修改全部撤销,即让这个文件回到最近一次 git commit 或 git add 时的状态。


07


git 的使用--分支


(1)master:主分支


dev:开发分支,创建开发分支是为了保证 master 分支的稳定性


bug:解决 bug 的分支


注意:dev,bug 是我自己定义的分支名,你请随意


(2)git branch dev #创建开发分支


(3)git branch #查看分支


(4)git branch -a #查看所有分支


(5)git branch -v #查看分支,并带有提交码


(6)git branch -d 分支名 #删除分支


(6)git checkout dev #切换到 dev 分支


(7)git checkout master #切换到 master 分支


(8)git checkout -b bug #创建 bug 分支,并切换到 bug 分支


将 dug 分支合并到 master 分支:


首先要切换到 master 分支:git checkout master


然后进行合并:git merge bug


然后查看日志:git log --oneline


合并完成之后,需要删除 bug 分支:git branch -d bug #删除 bug 分支


然后在查看分支:git checkout -v


再切换到 dev 分支进行开发:git checkout dev


开发完成之后,提交代码:git add 文件名 #将工作区的代码添加到缓存区


                    git commit -m “注释”  #将缓存区的代码提交到版本库
复制代码


切换回 master 分支合并 dev 代码:git checkout master


合并 dev 代码:git merge dev


在查看日志:git log --oneline


命令 作用域 常用情景


git reset 提交层面 在私有分支上舍弃一些没有提交的更改 git reset 文件层面 将文件从缓存区中移除


git checkout 提交层面 切换分支或查看旧版本


git checkout 文件层面 舍弃工作目录中的更改


git revert 提交层面 在公共分支上回滚更改


git revert 文件层面 (然而并没有)


08


git 的使用--tag 标签


(1)git tag v1.0 打标签


(2)git tag 查看所有标签


(3)git show <tagname>可以查看某个标签的详细信息


(4)git tag <tagname> 用于新建一个标签,默认为 HEAD,也可以指定一个 commit id


(5)git tag -d <tagname>可以删除一个本地标签;


(6)注意:标签总是和某个 commit 挂钩。如果这个 commit 既出现在 master 分支,又出现在 dev 分支,那么在这两个分支上都可以看到这个标签。


(7)如果要推送某个标签到远程,使用命令 git push origin <tagname>:


(8)一次性推送全部尚未推送到远程的本地标签:git push origin --tags


(9)如果标签已经推送到远程,现在需要删除远程标签,首先从本地删除:


git tag -d <tagname>


然后,从远程删除。删除命令也是 push,但是格式如下:


git push origin :refs/tags/<tagname>


09


git 的使用--删除文件


(1)使用 git 删除某个某个文件,之后还需要进行提交,否则删除不会成功:


git rm 要删除的文件名


git commit -m "del 删除文件"


(2)误把文件删除,可以通过版本库恢复回来:git checkout -- 误删除的文件


10


git 的使用--设置别名


(1)git config --global alias.st status 设置 status 的别名为 st,git st 等价于 git status,下同


(2)git config --global alias.co checkout


(3)git config --global alias.ci commit


(4)git config --global alias.br branch


--global 参数是全局参数,也就是这些命令在这台电脑的所有 Git 仓库下都有用。


11


git 的使用--将 dev 上未完成的工作暂存


首先要切换到 dev 分支上:git checkout dev


修改某个文件后,将它暂存起来:git stash / git stash save


查看状态:git status 可以看到这个工作会变得很干净


查看存储了哪些暂存工作:git stash list


恢复暂存起来的工作:git stash apply


再查看状态,你就会看到之前暂存起来的工作了。


清除暂存起来的工作:git stash clear


12


git 的使用--设置忽略文件


(1)配置全局忽略的文件,这样就不用每个项目都加 gitignore 了:


git config --global core.excludesfile '~/.gitignore'


(2)创建.gitignore 文件,用来忽略某些文件


(3)echo “文件名” >> .gitignore 将需要忽略的文件添加到忽略文件中


(4)cat .gitignore 查看忽略文件


(5)echo “目录/” >> .gitignore 忽略一个文件


(6)echo "*.txt" >> .gitignore 忽略以.txt 结尾的所有文件

用户头像

TimeFriends

关注

加油! 年轻人! 2022.08.02 加入

这里没有天赋异禀,也没有天资聪颖,只有每天的陪伴。万物瞬息万变,但唯一不变的只有变化。抓住变化的根本,以时间为伍,以坚持为伴,做时间的朋友。

评论

发布
暂无评论
版本管理工具git的使用总结_8月月更_TimeFriends_InfoQ写作社区