Git基础
Git项目结构
Git命令
初始化
git init #初始化项目,将项目交给git进行版本管理
此时,在git管理的项目根目录下会出现一个名为.git
的隐藏文件夹
,该文件夹存放了git的配置文件。
git config 配置相关信息
git config user.name "用户名"
配置版本信息中的用户名
git config user.email "email邮箱号"
配置版本信息中的EMAIL邮箱
这里可以使用--global参数,此时配置的git信息则为全局信息。如果在当前项目下没有配置相关用户信息则使用全局配置。用户配置信息项目级配置优先于全局配置。
git查看文件状态
git status
- 绿色表示文件存入暂存区
- 红色表示文件还未放在暂存区
git add 提交到暂存区
git add [具体文件]
提交具体的文件的到暂存区git add .
提交全部到暂存区
git commit提交到本地库
-
git commit -m "注释" [暂存区中的具体文件名]
提交已存在暂存区的文件到本地库 -
git commit -m "注释"
提交所有暂存区的中的文件到本地区
查看历史记录
-
git log
- git log --pretty=oneline 漂亮的显示格式
- git log --oneline 更简单的显示模式
-
git reflog
- 带有指针步数的历史记录
回退历史版本
git reset --sort [一串hash的索引值]
软回退: 只回退本地库, 不回退暂存区和工作区git reset --mixed [一串hash的索引值]
混合回退: 回退暂存区和本地库,但不回退本地库-
git reset --hard [一串hash的索引值]
硬回退:暂存区、工作区、本地库均一起回退git reset --hard HEAD^
回退一步,一个符号为一步,多个则为多步git reset --hard HEAD~6
回退6步,~符号后面数字是回退步数git reset --hard HEAD
可以用来重置三个区域的指针位置(将当前的版本记录全部重置到当前的位置)
取消改动
git restore
[暂存区中文件] 取消暂存区中指定的文件改动
版本比较
git diff [对应的文件]
与当前的缓存区中的版本进行比较,默认情况下缓存区中的历史版本与当前本地库的历史版本一直。
git diff HEAD [对应要比较的文件]
与当前的本地库中的版本进行比较
git diff HEAD^ [对应要比较的文件]
与本地库中的上一个的版本进行比较
git diff HEAD~2 [对应要比较的文件]
与本地库中的上2个的版本进行比较
git diff
不带任何要比较的文件,则会将当前修改的所有文件进行与缓存区比较(因为一致,所以基本就是和本地库的版本进行比较)
分支管理
git branch
查看版本分支(本地分支)
git branch -a
查看本地版本分支及对应的远程分支
git branch -D [分支名称]
强制删除指定分支
git branch -d [分支名称]
删除指定分支
git branch [分支名称]
创建分支
git checkout [存在的分支名称|文件名]
切换分支或者恢复上一步操作的文件
git restore [文件名]
与git checkout [文件名]
功能相同
git checkout -b [存在的分支名称]
创建新分支并切换
git merge [存在的其他分支名称]
将其他的分支合并到当前所在的分支
注意
如果出现分支冲突,则先解决冲突(冲突文件中会有相应的提示)。然后再输入
git add .
命令, 最后git commit
提交合并(这里的git commit
后面不带注释内容)
SSH公钥配置
ssh-keygen -t rsa -C "zj13656800820@aliyun.com" #创建公钥, 这里的邮箱为账号邮箱号
然后一路回车确认。此时会在~/.ssh/id_rsa.pub
Windows下为c:/User/xxx/.ssh/id_rsa.pub
创建生产,复制文件中内容至远程版本管理系统的个人SSH公钥配置中, 确定输入密码并保存。
然后再在本地输入:
ssh -T git@gitee.com # 此处为码云
验证设置是否成功(如果出现successful
则说明设置成功)
之后远程clone项目(选择SSH)至本地,往后push项目即可不用输入验证用户和密码了。
查看远程仓库
git remote -v
查看远程仓库列表
git remote add [别名] https://....
在本地添加别名指向远程仓库地址
git remote remove [别名]
删除当前配置的远程仓库别名
git push -u [别名]
将本地仓库推至远程仓库
git push -u [远程仓库别名] [远程分支名称]
将当前分支在远程仓库创建同名的分支并提交(如果远程仓库已有同名的仓库则不在创建直接提交)。
git push origin --delete [远程仓库别名]
删除远程指定仓库【先要切换到别的分支上才能删除】
远程-本地库操作
git fetch [远程库别名] [本地分支]
从远程库中拉取文件至本地库,但并不合并
。
git pull [远程仓库别名] [本地分支名]
拉取并合并到本地分支。该命令相当于git fetch
和git merge
两个命令合并执行。
如果在远程仓库中有分支,此时pull之后可以直接进行checkout
到其他的分支。
Gitlab邀请团队成员
gitee邀请团队成员
github第一次使用时: 团队合作
Git操作相关问题
出现该问题是可以通过如下命令解决:
git pull origin master --allow-unrelated-histories
出现以上问题,先需要pull一下项目,再push项目:
git pull origin master