目录
基础命令
初始化本地仓库
git init 初始化本地仓库
全部提交到暂存区
git add . 全部提交到暂存区
提交到本地厂库
git commit -m "修改了bug"
查看修改状态
git status
查看提交记录
git log [options]
options
-all 显示所有
--pretty=oneline 将提交信息显示未一行
--abbrev-commit 使得输出的commitId更短
--graph 以图形式显示
版本回退
git reset --hard CommitID
如果想获得回退前版本覆盖的记录
使用git reflog
分支
查看本地分支
git branch
创建分支
git branch 【分支名】
切换分支
git checkout [分支名]
合并分支
git merge [被合并的分支名]
例如把dev合并在master分支下 git merge dev
本地仓库解决冲突
在dev分支上改count=2
在master分支上改count=3
合并产生冲突
解决办法:冲突后手动改然后重新,add,commit。
打开file01文件
修改完毕再暂存,提交
使用远程厂库
注册gitee,或者github
配置公私钥对
ssh-keygen -t rsa
不断回车
公钥存在会自动覆盖
获取公钥
cd c:/Users/lenovo/.ssh
git bash命令行运行
cat ./id_rsa.pub
粘贴公钥到仓库里的这个地方
确定后检验
ssh -T git@gitee.com
把远程厂库添加到本地
创建 git 仓库:
mkdir git_test
cd git_test
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@gitee.com:zhangjiahaowudi/git_test.git
git push -u origin "master"
已有仓库?
cd existing_git_repo
git remote add origin git@gitee.com:zhangjiahaowudi/git_test.git
git push -u origin "master"
git remote add origin git@gitee.com:zhangjiahaowudi/git_test.git
在 Git 中,origin 并不是 Git 规定的固定名称,它只是一个默认的、被广泛使用的远程仓库别名。
当你执行 git remote add origin <仓库地址> 时,origin 只是给这个远程仓库起的一个 "昵称",方便后续操作时引用(比如 git push origin main 比直接写完整仓库地址更简洁)。
你完全可以用其他名称来代替 origin
git push [-f] [--set-upstream] [远端名称] [本地分支名]:[远端分支名]
例如
git push origin master1:master2
把本地分支master1推送到远端仓库origin的master2分支
如果本地分支名与远程分支名相同,可以只写本地分支名
git push origin master //推送master分支到远端master
选项参数:
-f: 本地代码和远程代码冲突,不让你推,用-f强制覆盖
--set-upstream:推送到远端的同时并且建立起和远端分支的关联关系,可以有多个绑定
git push--set-upstream origin master:master
--set-upstream也可以缩写为-u //我没试过。
如果当前分支色经和远端分支关联,则可以省略分支名和远端名。
git push 将master分支推送到已关联的远端分支。
比如你想偷懒,只想打出git push 就直接想把代码推过去
就先绑定关联git push--set-upstream origin master:master,然后之后就可以git push了。
git branch -vv可以查看分支绑定情况
克隆
git clone git@gitee.com:zhangjiahaowudi/git_test.git [本地厂库文件夹]
只拉取
git fetch
拉取合并
git pull 远程分支直接会和当前分支合并,相当于git fetch + git merge
例如用git fetch结果如下
git pull 直接拉取合并
远端仓库代码冲突
开始远程仓库版本82ea32e
person1对其操作更改file01内容为6
另一个人person2的本地仓库
更改fil01
person2 git fetch后
然后git merge,或者git pull
代码冲突合并失败,手动修改
最后,person2就可以git push了
person1在person2代码push完毕后再pull一下,就更新了