Git学习笔记(Linux命令)

一、图标含义

master、origin master 与 origin/master介绍

o/master(remote name/branch name):远程仓库名/分支名

  1. Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多。
  2. Git CMD:Windows风格的命令行。
  3. Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令。
  4. 日常更新上传的步骤:
    git add
    git commit
    git pull
    git push
    5.关于IDEA集成字体颜色
    绿色,已经加入控制暂未提交
    红色,未加入版本控制
    蓝色,加入,已提交,有改动
    白色,加入,已提交,无改动
    灰色,版本控制已忽略文件
    6.分支说明:

    每个分支都是一个完整的项目,互不影响。

二、常用的Linux命令

  1. cd:改变目录。
  2. cd..:回退到上一个目录,直接cd进入默认目录。
  3. pwd:显示当前所在的目录路径。
  4. ls(ll):都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更详细。
  5. touch:新建一个文件,如 touchu index.js,就会在当前目录下新建一个index.js文件。
  6. rm:删除一个文件,rm index.js ,就会把index.js文件删除。
  7. mkdir:新建一个目录,就是新建一个文件夹。
  8. rm -r:删除一个文件夹,rm -r src,删除src目录。
  9. mv:移动文件,mv index.js src,(index.js 是我们要移动的文件,src 是目标文件夹。
  10. reset:重新初始化终端/清屏。
  11. clear:清屏。
  12. history:查看命令历史。
  13. help:帮助。
  14. exit:退出。
  15. #:表示注解。
    16.查看当前系统版本:cat/etc/os-release
    17.查看系统内核:uname -r

三、Git常用命令

  1. 设置全局变量
    git config --global user.name "zjy" (这个和账号没关系,只是一个用户签名)
    $ git config --global user.email "540507521@qq.com"
  2. 常用操作
    1)初始化:git init 或者 git clone 【url】
    2)下载项目:git clone 【url】(下载项目不需要管理凭证,但是只要把代码推送到远程的就需要管理凭证,一台电脑只有一个管理凭证,管理凭证就是git账号)
    3)查看所有提交跟踪状态:git status,单个文件查看:git status 文件名
    4)加入到暂存区:git add 文件名,添加所有文件到暂存区:git add .
    5)提交暂存区的文件到本地仓库:git commit -m “消息内容”(-m:提交信息)
    6)创建公钥密钥:ssh-keygen -t rsa -C 邮箱
    7)列出所有本地分支:git branch (git branch -v:列出所有本地分支和分支信息)
    8)列出所有远程分支:git branch -r
    9)新建一个分支,但依然停留再当前分支:git branch 分支名字
    10)新建一个分支,并切换到该分支:git checkout -b 分支名字
    git checkout 分支名字:切换分支
    11)合并指定分支到当前分支:
    第一种:(在分支1使用)git merge 要合并的分支名字(分支2)-分支2合并到分支1
    第二种:(在1分支使用)git rebase 要合并到的分支名字(分支2)--分支1合并到分支2
    12)删除分支:git branch -d 分支名字
    13)删除远程分支:git push origin --delete 分支名字 或者 git branch -dr 【remote/branch】
    14)强制移动HEAD:git branch -f master HEAD~3 (将master向上移动3个节点)
    15)查看日志信息:git reflog
    16)查看详细信息:git log
    17)回退到某个版本:git reset --hard 版本号(版本号从信息里查看)
    18)git remote -v:查看远程库所有别名(别名的意思就是项目链接太长了,给项目重新取一个别名)
    19)git remote add 别名 项目链接:创建别名
    20)git push 别名 分支名:推送本地库的代码到远程库
    21)git pull 别名 分支名:拉取远程库的代码到本地库

四、用法

五、git流程

1、当前在master分支上,需要开发master分支的项目。
2、创建一个开发分支 dev ,git branch dev,dev分支创建成功,dev上存在和master分支一摸一样的项目,当前所在的分支还是master。
3、切换分支,git checkout dev,从当前分支master切换到开发分支dev。
(也可以 2 和 3 合并起来,就是 git checkout -b dev,新建一个开发分支dev,并切换到 dev 分支)
4、在开发分支 dev 开发项目,开发完成,准备合并分支。
5、将把开发分支dev合并到master分支上,先切换到master分支,然后键入 git merge dev。
(也可以这样,不切换到master分支,当前所在分支为开发分支dev,然后 git rebase master,将dev分支合并到master分支上)

六、Git集成IDEA

1、首先先配置忽略的配置,作用是:每当把项目上传的时候,git会将所有文件默认选取,为了把一些不必要的文件忽略,所以配置忽略文件。
创建 xxx.ignore 文件,然后将需要忽略的文件键入,在.gitconfig配置文件中输入
需要用到正斜线 “ / ”,不能用反斜线 “ \ ”

[core]
    excludesfile = xxx.ignore文件地址

2、IDEA配置Git

七、git流程idea更新代码时的两个选项Merge the incoming changes into the current branch与Rebase the current branch on top of the incoming changes

1、第一个Merge
一般都使用这个,这个是按照时间顺序更新代码,什么意思呢,就是有两个场景:
假如有两个开发人员a、b都在同一个分支test上进行开发:
(1)a、b把代码都拉下来;
(2)a进行开发,在a开发的同时,b可能也在开发(场景一),可能没有(场景二);
(3)场景一:a开发之后,更新代码并提交代码,然后b也开发好,更新代码,因为Merge更新代码是按照时间来更新的,所以不会出现冲突问题,b很顺利地将代码更新下来;
(4)场景二:a开发之后,更新代码并提交代码,b没有进行开发,直接更新代码,这个肯定顺利成功。

2、第二个Rebase
这个是将别人的代码先更新下来,然后将自己的代码提到最顶端,什么意思呢,就比如:
两个开发人员a、b在同一个分支test上进行开发:
(1)a、b把代码都拉下来;
(2)a进行开发,在a开发的同时,b可能也在开发(场景一),可能没有(场景二);
(3)场景一:a开发之后,更新代码并提交代码,然后b也开发好,更新代码,此时就会出现问题,它会更新代码,将b代码覆盖下来,就会冲突;
(4)场景二:b没有开发代码,直接更新代码,这是没有问题的。

八、idea上面使用git提交到本地仓库怎么回退

1、右键选中需要回退的文件,点击git


image.png

2、使用 HEAD^ 来描述版本,一个 ^ 表示前一个版本,两个 ^^ 表示前两个版本,以此类推。
也可以使用数字来代替 ^,比如说前 100 个版本可以写作 HEAD~100。


image.png

说明:将HEAD指针指向需要回退到的版本,然后再进行回退。
3、回退
image.png

九、git提交规范 fix,feat等字段含义

feat: 新功能(feature)
fix: 修补bug
docs: 文档(documentation)
style: 格式(不影响代码运行的变动)
refactor: 重构(即不是新增功能,也不是修改bug的代码变动)
chore: 构建过程或辅助工具的变动
revert: 撤销,版本回退
perf: 性能优化
test:测试
improvement: 改进
build: 打包
ci: 持续集成

十、git merge和git rebase使用方法(都是针对本地来进行合并的)

有三个分支master、dev、test:
(1)A在dev上开发功能,完成功能开发,先得在dev分支提交开发的功能模块,然后推送到远程服务器,然后git checkout master切换到本地的master分支,使用git merge dev将在dev分支上开发的功能合并到本地的master分支,然后推送到远程服务器;
(2)B在本地切换到master分支,更新代码,在本地git checkout test切换到test分支,在使用git rebase master将更新下来的代码合并到自己的本地test分支上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容