基本配置
git config --global user.name "阿里嘎多多"
git config --global user.email "XXX@qq.com"
工作区 暂存区 本地仓库(master) 远程
初始化 git init
添加到暂存区 git add test.txt
添加到本地仓库(master) git commit -m "第一次提交"
git status 查看状态
git diff 查看修改内容
版本回退
git log 查看最近三次提交
git log --pretty=oneline(简洁版)
git reset --hard HEAD^ 回到上个版本 (HEAD^^ 上上个 HEAD~100 上100个版本)
git reset --hard 864e (根据commit id 回到未来的某个版本)
git reflog 记录每一次命令
撤销修改
场景1:改乱了工作区的内容 直接丢弃工作区的修改
git checkout -- a.txt (--不能省略 不然变切换分支)
场景2:不但改乱了工作区的内容 还添加到了暂存区 分俩步(撤销到场景1 按场景1操作)
git reset HEAD a.txt (把暂存区的修改撤销)
git checkout -- a.txt
删除文件
git rm a.txt
远程仓库
生成SS HKey ssh-keygen -t rsa -C "xxx@qq.com"
查看公钥 cat ~/.ssh/id_rsa.pub
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
关联远程库
要关联一个远程库,使用命令
git remote add origin git@gitee.com:gitee名字/XXX.git
;
关联一个远程库时必须给远程库指定一个名字,origin
是默认习惯命名;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,
就可以使用命令git push origin master
推送最新修改;
克隆仓库
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone
命令克隆。
Git支持多种协议,包括https
,但ssh
协议速度最快。
分支管理
查看分支 git branch
创建分支 git branch dev
切换 git checkout/switch dev (优先使用switch)
创建+切换 git checkout -b dev
git switch -c dev
合并某分支到当前分支 git merge dev
删除 git branch -d dev
合并冲突
当master 和dev都修改并add 和commit
git merge dev 合并时冲突
查看状态
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph --pretty=online
命令可以看到分支合并图