主要是针对github desktop的使用
一、 仓库操作
修改、删除和新增都是使用commit命令,给出不同的描述。
二、分支
2.1 分支原理
分支相当于版本库的副本
将之前多次冲突,减少到一次冲突
2.2 分支操作
wangwu为项目管理人员,负责版本库的创建和维护,zhangsan和lisi负责开发
(1)创建版本库
(2)创建分支
(3)分支合并
文件冲突解决:
(1)提示合并时文件冲突
(2)点击create a merge commit
(3)通过编译器或者记事本打开,修改其中的内容
!](https://i-blog.csdnimg.cn/direct/407aab4666124bf1b80b6873ee5845d7.png)
保存后提交
2.3 创建标签
选择一次操作,右键,create tag
创建好之后,可以看到
三、github建立远程仓库
勾选README
3.1 下载远程仓库
在本地修改文件后,需要推送给远程仓库
在这里插入图片描述
红色图标删除,黄色图标修改,绿色图标新增
四、版本号
(1)新增带上上一次的版本号
(2)更新第二次提交
在这里插入图片描述
(3)删除
五、git的指令
(1)创建文件夹,右键选择gitbash
(2)初始化本地仓库
git init
1.git安装后-指定名称和邮箱
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2.创建版本库 !!
$ mkdir direname //创建direname
$ cd direname //使用
$ pwd //查看当前目录
$ git init //初始化,生成.git文件(若该文件隐藏,则使用ls -ah)
3.把文件添加add和提交commit到版本库
$ git add test.txt //添加
$ git commit -m a "wrote a test file" //提交 ""中为备注信息
$ git commit -m "add 3 files." //一次性提交多个文件
注意:必须在当前版本库和当前目录下
4.版本控制!!
$ git log //查看提交历史记录,从最近到最远,可以看到3次
$ git log --pretty=oneline //加参,简洁查看
$ git reflog //查看每一次修改历史
$ cat test.txt //查看文件内容
$ git status //查看工作区中文件当前状态
$ git reset --hard HEAD^(HEAD~100)(commit id) //回退版本
$ git checkout -- test.txt //丢弃工作区的修改,即撤销修改
$ git reset HEAD test.txt //丢弃暂存区的修改(若已提交,则回退)
5.删除文件
$ rm test.txt
//直接删除
$ git rm test.txt
$ git commit -m "remove test.txt"
//删错了,恢复
$ git checkout -- test.txt
6.远程仓库!!
$ ssh-keygen -t rsa -C "youremail@example.com" //创建SSH Key
$ git remote add origin git@github.com:Daisy/AKgit.git //关联
$ git push -u origin master //在开发时,慎重合并到主分支中,将本地内容推送到远程仓库(第一次)
$ git push origin master //将本地内容推送到远程仓库(之后)
$ git remote -v //查看远程仓库信息
$ git remote rm origin //删除远程仓库(解绑)
$ git clone git@github.com: Daisy/AKgit.git //克隆远程仓库
//克隆之后使用和查看
$ cd gitskills
$ ls
$ git remote //查看远程库的信息
$ git remote -v //查看远程库的详细信息
注意:
git remote add origin git@github.com:Daisy/AKgit.git:用于将本地Git仓库与远程GitHub仓库关联起来。这个命令包含三个部分:
**git remote add:**这是一个Git命令,用于添加一个新的远程仓库引用。
**origin:**这是远程仓库的默认名称,它为远程仓库定义了一个简短的别名。在Git中,origin 通常用于表示默认的远程仓库,但你也可以使用其他名称。
**git@github.com:**Daisy/AKgit.git:这是远程仓库的URL。这个URL包含了以下信息:
git@github.com:这是GitHub的Git服务地址,用于通过SSH协议进行连接。
**Daisy:**这是GitHub用户名,表示远程仓库属于哪个用户。
**AKgit:**这是仓库名称,表示远程仓库的名称。
**.git:**这是Git仓库的标识符,通常在仓库URL的末尾。
7.多人协作!!
$ git checkout -b dev //创建并切换到分支dev
//创建并切换到分支dev,同上
$ git branch dev //创建
$ git checkout dev //切换
//新版本
$ git switch -c dev //创建并切换到分支dev
$ git switch master //直接切换分支
$ git branch //查看当前分支
$ git merge dev (--no-ff)(-m)//合并,把dev分支的工作成果合并到master分支上
$ git branch -d dev //删除dev分支
git merge dev:这表示将 dev 分支合并到当前分支。在执行这个命令之前,你需要确保你已经切换到了要合并到的分支(通常是主分支,如 master 或 main)。
–no-ff:这个选项告诉 Git 在合并时不要使用快进式合并(fast-forward)。快进式合并是指当两个分支的提交历史是线性的,Git 会直接将两个分支的末端对齐,而不创建一个新的合并提交。使用 --no-ff 选项会强制 Git 创建一个新的合并提交,即使合并可以是一个快进式合并。
-m:这个选项后面通常跟着一个数字,表示使用特定的提交消息。例如,-m 1 会使用之前提交消息的历史中的第一条。在你提供的命令中,-m 后面没有数字,这可能是一个遗漏。
$ git stash //将现场储藏起来
$ git stash list //查看储存的工作现场
//恢复和删除
$ git stash apply
$ git stash drop
//恢复并删除
$ git stash pop
$ git cherry-pick 4c805e2 //复制修改
8.标签管理
$ git tag v1.0 //打标签
$ git tag -a v0.1 -m "version 0.1 released" 1094adb //指定标签名和说明文字
$ git tag //查看所有标签
//若是忘记打,则查找历史提交commit id ,再打上
$ git log --pretty=oneline --abbrev-commit
$ git tag v0.9 f52c633
$ git show v0.9 //查看标签详细信息
$ git tag -d v0.1 //删除标签
$ git push origin v1.0 //推送标签到远程
$ git push origin –tags //一次性推送全部本地标签
//删除标签,(若已推送到远程,先从本地删除,从远程删除)
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9
9.自定义git
$ git config --global color.ui true //让git显示颜色
$ git config --global alias.st status //配置别名
$ git config --global alias.unstage 'reset HEAD' //配置操作别名
$ git config --global alias.last 'log -1' //显示最后一次提交信息
$ git last //显示最近一次的提交
$git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" //颜色
$ cat .git/config //查看每个仓库的git配置文件
$ cat .gitconfig //查看当前用户的git配置文件