git的使用

1)git的学习及总结

cpp 复制代码
可以用通配符添加多个文件,如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. git的常用命令
cpp 复制代码
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	查看提交历史
相关推荐
2401_883041084 小时前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
青云交4 小时前
大数据新视界 -- 大数据大厂之 Impala 性能优化:融合机器学习的未来之路(上 (2-1))(11/30)
大数据·计算资源·应用案例·数据交互·impala 性能优化·机器学习融合·行业拓展
但老师7 小时前
Git遇到“fatal: bad object refs/heads/master - 副本”问题的解决办法
git
秃头女孩y7 小时前
git创建分支
git
Json_181790144807 小时前
An In-depth Look into the 1688 Product Details Data API Interface
大数据·json
Qspace丨轻空间9 小时前
气膜场馆:推动体育文化旅游创新发展的关键力量—轻空间
大数据·人工智能·安全·生活·娱乐
Elastic 中国社区官方博客10 小时前
如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
大数据·elasticsearch·搜索引擎·云计算·全文检索·可用性测试·aws
掘金-我是哪吒10 小时前
微服务mysql,redis,elasticsearch, kibana,cassandra,mongodb, kafka
redis·mysql·mongodb·elasticsearch·微服务
Aloudata11 小时前
从Apache Atlas到Aloudata BIG,数据血缘解析有何改变?
大数据·apache·数据血缘·主动元数据·数据链路
水豚AI课代表11 小时前
分析报告、调研报告、工作方案等的提示词
大数据·人工智能·学习·chatgpt·aigc