• git的使用


    1)git的学习及总结

    可以用通配符添加多个文件,如git add *.txt;
    git add . //把当前所有文件都添加到暂存区中
    
    
    git reset test.txt //取消暂存
    git commit -m "提交的信息" //这个信息会被提交到仓库中,作为版本管理的凭证
    //git只会提交到暂存区中的文件,而不会提交工作中的其他文件!
    repository  [rɪˈpɒzɪt(ə)ri] 仓库 
    
    
    git log命令查看提交记录;
    例如:输出如下信息
    	commit bc691e00aeb009ba8b20db6e5f4915e4b27188fc (HEAD -> master)
    	Author: 00025_JiangHuaiWei <jhw@autobrain.cn>
    	Date:   Mon Sep 18 15:07:56 2023 +0800
    git log --oneline //查看简洁的log信息,查看一些提交历史;
    
    
    git reset的三种模式
    git reset --soft	保存工作区 保存暂存区
    git reset --hard	丢弃工作区 丢弃暂存区
    git reset --mixed	保存工作区 丢弃暂存区(也是默认参数)
    git reset --soft f05c120 //f05c120为回退的版本id;
    git ls-files  //查看暂存区里面的内容
    git reflog //查看的操作历史记录;
    git reset --hard 83582b1 //回退到之前83582b1版本
    git reset --sort HEAD^   //回退到上一个版本
    
    
    git diff的使用
    git diff是比较的工作区和暂存区的不同
    git diff HEAD 是比较工作区和版本库的不同
    git diff --cached //暂存区和版本库的不同
    git diff 版本id1 版本id2;
    git diff HEAD~3 HEAD file3.txt //查看当前版本与第三个版本的的file3.txt内容的不同,其他文件不查看;
    git diff 分支1 分支2 //比较分支之间的差异;
    
    
    从版本库中删除文件
    git rm 会删除工作区中的文件;
    git rm 会同时将删除的文件添加到暂存区;
    【因此 git rm 相当于 rm + git add 两个命令】
    
    
    git rm other.log //同时删除本地和暂存区的内容
    git rm --cached other.log //只删除暂存区的内容
    删除完,应该再次提交,否则文件不能真正删除;
    提交到版本库,完成删除动作
    git commit -m “xxxxxx”
    
    
    .gitignore的使用:
    echo access.log > .gitignore //把access.log文件添加到.gitignore文件中
    执行上面语句,则只会看到other.log,不会看到access.log文件了。
    git ls-files执行后,只有other.log会添加到版本库中,accesss.log不会添加到
    git status -s //输出 "modified:   ../.gitignore",代表gitignore这个文件被修改过;
    
    
    远程仓库的创建及秘钥添加
    	1)github的注册,需要用到邮箱;
    ssh配置和克隆仓库
    推举用ssh,不用htttps;
    cd ~/.ssh //进入这个目录
    当前目录:/home/jiang/.ssh
    ssh-keygen -t rsa -b 4096  //生成秘钥按rsa协议生成,文件大小4096
    把生成的秘钥添加到github上即可;
    
    
    git常用命令6个:
    git clone
    git push命令是推送到远程仓库;
    git add
    git commit 把暂存区的内容提交到版本仓库中
    git pull 拉取
    git checkout
    ctrl + shift + r //刷新网页的快捷键
    
    
    本地文件添加远程仓库(origin是远程仓库的别名)
    添加远程仓库:
    步骤1: git remote add <远程仓库别名><远程仓库地址>
    步骤2: git push -u <远程仓库名><分支名>
    git remote add origin git@192.168.130.63:jianghuaiwei/dbc-itearator.git
    	git remote add origin的作用:是将远程仓库添加到本地仓库中,并为其设置一个别名;
    	例如:“git@192.168.130.63:jianghuaiwei/dbc-itearator.git”为远程仓库,添加到本地仓库并将其命名为"origin";
    	这样就可以通过使用"origin"来推送或拉取更新;
    git remove -v //当前仓库对应的远程仓库的别名和地址,必须在对应的本地目录下才可以
    	输出:
    	origin	git@192.168.130.63:autobrain/develop/common/edr.git (fetch)
    	origin	git@192.168.130.63:autobrain/develop/common/edr.git (push)
    git branch -M main //指定分支的名称为main
    git push -u origin main //把本地仓库与远程仓库关联起来,-u 是upstream的缩写
    	全称应该是git push -u origin main:main //把本地仓库的main分支推送到远程仓库的main分支;注意:git版本低的是master
    	如果远程仓库的main分支和本地的main分支是一个名字的话,就写一次就可以了;
    git pull <远程仓库名><远程分支名>:<本地分支名>: git pull origin main //远程仓库名称和远程分支名称可以省略,代表的是 origin 和 main 注意:git版本低的是master
    执行完git pull命令后,git会为我们执行一次合并操作;
    用fetch来获取远程仓库的修改内容;
    
    git图形化工具
    GitKraken -- 超好用的 Git 可视化工具
    visual studio code 【source control】有“U” 未跟踪,M修改,A添加到暂存等;
    
    
    分支的学习
    git branch  查看分支列表
    git branch branch_name 创建分支
    git switch branch_name 切换分支 有的版本不支持,只能是git checkout branch_name切换分支
    git merge branch_name 合并分支:合并后的分支还是存在的
    git branch -d branch_name 删除分支,【已合并的】
    git branch -D branch_name 删除分支,【未合并的】
    
    
    解决分支的冲突
    git commit -am "feat:1" //就一个命令完成添加暂存和提交的两个动作;
    分支和master内容冲突的话,会出现下面错误:
    	jiang@jiang-X280:~/brahch_demo$ git checkout master
    	error: Your local changes to the following files would be overwritten by checkout:
    		main1.txt
    	Please commit your changes or stash them before you switch branches.
    	Aborting
    需要手动修改错误,并提交;
    总结:
    两个分支未修改同一个文件的同一位置:git自动合并
    两个分支修改了同一文件的同一处位置:产生冲突
    解决办法:
    	1)手工修改文件
    	2)  添加暂存区 git add file
    	3)  提交修改
    终止合并:
    	git merge --abort;
    
    
    回退和rebase(变基)
    
    
    
    
    
    Project slug: 仓库url名称,只能英文
    Visibility Level: 仓库可见性,Privite就是私有仓库,Public就是公有仓库
    https://blog.csdn.net/m0_66681776/article/details/129670579
    
    
    fatal: detected dubious ownership in repository at '/home/jiang/ab_demo'
    To add an exception for this directory, call:
    解决办法:手动禁用安全目录 git config --global --add safe.directory '*'
    
    git remote rm origin //删除远程仓库
    
    推送远程仓库三部曲:
    	git add .
    	git commit -m "add context"	
    	git push(全程是: git push origin master)
    
    
    git push出现下面的错误的解决办法:
    fatal: The current branch dev has no upstream branch.
    To push the current branch and set the remote as upstream, use
        git push --set-upstream origin dev
    首先git push命令,是默认将当前分支Push到远程的对应的分支,如果远程不存在对应分支,则会报错。比如这里,本地是dev分支,远程没有dev分支,使用这条命令默认就是对应远程dev分支,所以就会报错;
    解决办法:git push --set-upstream origin dev
    
    
    本地分支与远程仓库分支关系对应
    git branch dev2 
    git checkout dev2
    echo dev2 > dev2.txt //创建一个测试文件
    git add dev2.txt
    git commit -m "branch dev2 test"
    git push --set-upstream origin dev2 //因为远程仓库没有dev2分支,需要创建一个,正确的话,输出下面结果:
    	Total 0 (delta 0), reused 0 (delta 0)
    	remote: 
    	remote: To create a merge request for dev2, visit:
    	remote:   http://192.168.130.63/jianghuaiwei/data-closed-loop/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev2
    	remote: 
    	To 192.168.130.63:jianghuaiwei/data-closed-loop.git
    	 * [new branch]      dev2 -> dev2
    	Branch 'dev2' set up to track remote branch 'dev2' from 'origin'.
    git push(全程 git push origin dev2)因为在dev2的分支上,所以也可以简写为 git push	
    
    security compliance 安全合法性;
    revision 美 [rɪˈvɪʒn] 修订
    stale 美 [steɪl] 陈腐的,没有创意的;
    metrics /ˈmɛtrɪks/ 度量
    alert 美 [əˈlɜːrt] 警报; 警戒;
    incident 美 [ˈɪnsɪdənt] 严重事件
    unrecognized argument 无法识别的参数
    decorate 美 [ˈdekəreɪt] 装饰
    ./gitkraken //解压这个文件,运行这个软件就行了。
    hotfix 网络用语 修补程序
    git log --oneline --graph --decorate --all
    alias graph="git log --oneline --graph --decorate --all" //取别名,等号两边没有空格
    分支管理和工作模型
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    1. git的常用命令
    1	git init				新建代码库
    2	git clone			克隆项目
    3.1	git branch		列出本地已经存在的分支,并且当前分支会用*标记
    3.2	git branch -r	查看远程版本库的分支列表
    3.3	git branch -a	查看所有分支列表(包括本地和远程,remotes/开头的表示远程分支)
    3.4	git branch -v	查看一个分支的最后一次提交
    3.5	git branch --merged			查看哪些分支已经合并到当前分支
    3.6	git branch --no-merged	查看所有未合并工作的分支
    3.7	git checkout -b 	新分支	创建分支的同时,切换到该分支上
    4.1	git tag [name]	创建tag
    4.2	git tag	查看已创建的tag
    4.3	git show tagName	查看tag对应的commit id
    5	git reset --hard commit-id 回退代码 (到这里就和reset方法一样了)
    6	git submodule add [url] [path]	添加子模块
    7.1	git pull	更新本地代码
    7.2	git fetch	拉取仓库里有 本地电脑没有的代码
    7.3	pull 根据不同的配置,可等于 fetch + merge 或 fetch + rebase
    8	git add	将当前更改加入到索引
    9	git commit	提交当前工作空间的修改内容
    10	git commit	将commit的代码提交的远程仓库
    11.1	git reset --hard HEAD^	回退到上个版本
    11.2	git reset --hard	本地库、暂存区动、工作区都动
    11.3	git reset --mixed	本地库、暂存区动,工作区不动
    11.4	git reset --soft	本地库动,暂存区、工作区不动
    11.5	git reset --hard HEAD~3	回退到前3次提交之前
    12.1	git push origin HEAD --force	推送到远程仓库
    12.2	git push --set-upstream origin dev	本地创建了一个名为dev的分支,远程仓库没有这个分支,push
    13	git merge	合并代码
    14	git merge --abort、	取消合并过程
    	git reset --merge	取消合并过程
    15.1	git stash	将当前分支修改暂存
    15.2	git stash list	查看暂存信息
    15.3	git stash apply	恢复最近一次修改
    15.4	git stash apply stash@{2}	恢复索引
    16.1	git config --local remote.origin.url	查看代码仓库地址
    16.2	git config --local remote.origin.url http://www.abc.com/abc.git	修改代码仓库地址
    17.1	git branch -d 分支名称	删除本地分支,不能删除当前所在的分支,如果要删除,必须先切换到其他分支上
    17.2	git branch -D 分支名称	强制删除分支
    17.3	git push origin :分支名称	删除远程分支,分支名称前有个冒号,分支名前的冒号代表删除
    18	git status	文件、文件夹在工作区、暂存区的状态
    19	git log	查看提交历史
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
  • 相关阅读:
    Win8如何删除临时文件?
    前端程序员编码规范必备
    Tensorflow2.x版本initializer正态化变量输出函数
    推荐一个假数据接口网页 适用于示例项目
    蓝桥杯经典算法题 确定字符串是否是另一个的排序
    【Java】刚刚!突然!紧急通知!垃圾回收!
    云主机适合哪些人使用?
    国际新闻|PostgreSQL 14.3、13.7、12.11、11.16 和 10.21 发布
    MySQL筑基篇之增删改查
    【计算机网络】数据链路层
  • 原文地址:https://blog.csdn.net/qq_30143193/article/details/133079175