前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >GIT学习笔记

GIT学习笔记

作者头像
CS逍遥剑仙
发布2025-03-02 21:56:26
发布2025-03-02 21:56:26
8200
代码可运行
举报
文章被收录于专栏:禅林阆苑禅林阆苑
运行总次数:0
代码可运行

GIT学习笔记

  这篇博文记录了Git的学习过程中基本的Git操作,留下笔记供日后参考。   博主是一个很有条理、注重开发效率的好男人(此处应有掌声),多年的软件工程学习可以明显感受到团队代码的管理对开发团队的重要性。之前一直在使用svn进行代码管理,svn是一款不可多得的好开源软件,其强大的功能可以说相当给力,不愧是团队协同工作利器。   几年之前,就一直听说github的强大,一时兴起注册了账号:csxiaoyaojianxian,只知道它很好用,却不知道那些开源代码是如何上传并操纵的,同时也缺少使用需求,因此仓库闲置在那里。说来丢人,github上的那些大牛的源代码每次我都是“Download ZIP”搞下来,竟然没用过旁边的clone……直到最近学校组织建立工程实践小组,我想借此感受一把git的魅力。   在网上找了一些学习资料进行一番学习,发现git和svn有太多的相似之处,并且其依托github这个云仓库,简直不能再赞,学习过后,我在自己宿舍内网穿透的计算机上安装了git,作为团队工作的代码仓库。使用过程中发现,有些简单常用的操作步骤容易遗忘,还是简单以纯文字记录下,以备后查。

1. Ubuntu安装Git

查看是否安装了Git

代码语言:javascript
代码运行次数:0
复制
$ git

安装

代码语言:javascript
代码运行次数:0
复制
$ sudo apt-get install git 

也可以下载源码包

代码语言:javascript
代码运行次数:0
复制
$ ./config
$ make
$ sudo make install

设置

代码语言:javascript
代码运行次数:0
复制
$ git config –global user.name “Your Name”
$ git config –global user.email email@example.com

设置Git显示颜色

代码语言:javascript
代码运行次数:0
复制
$ git config –global color.ui true

2. 版本库

创建版本库 切换到需要创建版本库的目录

代码语言:javascript
代码运行次数:0
复制
$ git init

将文件放到Git仓库

代码语言:javascript
代码运行次数:0
复制
$ git add <file>
$ git commit -m “wrote a readme file”

3. 版本控制

查csxiaoyao.com看当前仓库状态、差异及日志

代码语言:javascript
代码运行次数:0
复制
$ git status
$ git diff <file>
$ git log
$ git log –pretty=oneline

版本回退 HEAD表示当前版本(提交ID),上个版本是HEAD^,上上个版本是HEAD^^,上100个版本是HEAD~100。

代码语言:javascript
代码运行次数:0
复制
$ git reset –hard HEAD^
$ git reset csxiaoyao.com–hard 3628164

查看命令记录找回提交ID

代码语言:javascript
代码运行次数:0
复制
$ git reflog

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

代码语言:javascript
代码运行次数:0
复制
$ git checkout — readme.txt

撤销暂存区的修改,重新放回工作区,reset命令既可以回退版本,也可以把暂存区的修改回退到工作区,HEAD表示最新版本

代码语言:javascript
代码运行次数:0
复制
$ git reset HEAD readme.txt

文件删除及恢复 删除文件

代码语言:javascript
代码运行次数:0
复制
$ git rm test.txt
$ git commit -m “remove test.txt”

删错恢复

代码语言:javascript
代码运行次数:0
复制
$ git checkout — test.txt

4. 远程仓库

创建SSH Key

代码语言:javascript
代码运行次数:0
复制
$ ssh-keygen -t rsa -C “youremail@example.com”

在用户主目录找到.ssh目录,有id_rsa和id_rsa.pub两个文件 登陆GitHub,Add SSH Key,粘贴id_rsa.pub文件内容

本地仓库推送到GitHub仓库 远程库的名字默认是origin,可以修改

代码语言:javascript
代码运行次数:0
复制
$ git remote add origin git@github.com:csxiaoyaojianxian/test.git

把当前分支master推送到远程

代码语言:javascript
代码运行次数:0
复制
$ git push -u origin master

首次加上-u参数,会把本地master分支和远程master分支关联

代码语言:javascript
代码运行次数:0
复制
$ git push origin master

从远程库克隆

代码语言:javascript
代码运行次数:0
复制
$ git clone git@github.com:csxiaoyaojianxian/test.git

5. 分支管理

基本分支操作 查看分支

代码语言:javascript
代码运行次数:0
复制
$ git branch

创建分支

代码语言:javascript
代码运行次数:0
复制
$ git branch <name>

切换分支

代码语言:javascript
代码运行次数:0
复制
$ git checkout <name>

创建+切换分支

代码语言:javascript
代码运行次数:0
复制
$ git checkout -b <name>

合并某分支到当前分支

代码语言:javascript
代码运行次数:0
复制
$ git merge <name>

删除分支

代码语言:javascript
代码运行次数:0
复制
$ git branch -d <name>

强行删除没有被合并过的分支

代码语言:javascript
代码运行次数:0
复制
$ git branch -D <name>

查看分支合并情况

代码语言:javascript
代码运行次数:0
复制
$ git log –graph –pretty=oneline –abbrev-commit

禁用Fast forward

代码语言:javascript
代码运行次数:0
复制
$ git merge –no-ff -m “merge with no-ff” dev

Bug分支 stash功能可以把当前工作现场入栈,以后恢复

代码语言:javascript
代码运行次数:0
复制
$ git stash

查看stash

代码语言:javascript
代码运行次数:0
复制
$ git stash list

恢复现场 方法一

代码语言:javascript
代码运行次数:0
复制
$ git stash apply

恢复后stash内容并不删除,再删除

代码语言:javascript
代码运行次数:0
复制
$ git stash drop

方法二

代码语言:javascript
代码运行次数:0
复制
$ git stash pop

恢复的同时删除stash内容

代码语言:javascript
代码运行次数:0
复制
$ git stash pop

恢复指定的stash

代码语言:javascript
代码运行次数:0
复制
$ git stash apply stash@{0}
代码语言:javascript
代码运行次数:0
复制
5. 多人协作
查看远程库信息

git remote git remote -v

代码语言:javascript
代码运行次数:0
复制
抓取分支

$ git clone git@github.com:csxiaoyaojianxian/test.git

代码语言:javascript
代码运行次数:0
复制
推送分支 

$ git push origin master

代码语言:javascript
代码运行次数:0
复制
合并分支解决冲突

$ git pull

代码语言:javascript
代码运行次数:0
复制
建立本地分支和远程分支的关联

git branch –set-upstream branch-name origin/branch-name。

代码语言:javascript
代码运行次数:0
复制
## 6. 标签管理
创建标签,默认为HEAD

$ git tag v1.0

代码语言:javascript
代码运行次数:0
复制
给指定提交ID 创建标签

$ git tag v0.9 1247721

代码语言:javascript
代码运行次数:0
复制
查看所有标签

$ git tag

代码语言:javascript
代码运行次数:0
复制
指定标签信息

$ git tag -a <tagname> -m “inf”

代码语言:javascript
代码运行次数:0
复制
用PGP签名标签

$ git tag -s <tagname> -m “PGP”

代码语言:javascript
代码运行次数:0
复制
推送一个本地标签

$ git push origin <tagname>

代码语言:javascript
代码运行次数:0
复制
推送全部未推送过的本地标签

$ git push origin –tags

代码语言:javascript
代码运行次数:0
复制
删除本地标签

$ git tag -d <tagname>

代码语言:javascript
代码运行次数:0
复制
删除远程标签

$ git push origin :refs/tags/<tagname>

代码语言:javascript
代码运行次数:0
复制
![sign](https://raw.githubusercontent.com/csxiaoyaojianxian/ImageHosting/master/img/sign.jpg)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GIT学习笔记
    • 1. Ubuntu安装Git
    • 2. 版本库
    • 3. 版本控制
    • 4. 远程仓库
    • 5. 分支管理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档