创建仓库
初始化仓库
git init
主要用来初始化一个空的git本地仓库。执行完上面的命令,当前目录下会自动生成.git隐藏文件夹,该隐藏文件夹就是git版本库
查看仓库状态
git status
设置用户信息
git config --global user.name ‘名字,git config --global user.email ‘邮箱’’
如: $ git config --global user.name 'your_name ' $ git config --global user.email 'your_email@qq.com'
创建钥匙
ssh-keygen -t rsa -C “邮箱”
验证钥匙
ssh -T git@github.com
与远程仓库建立连接
git remote add origin 地址
如: git remote add origin git@github.com:yourName/repositoryname.git
重新设置仓库url地址
git remote set-url origin 地址
如: git remote set-url origin https://github.com/yourname/learngit.git (这个是你的复制的仓库地址)
初次拉取代码到本地
git pull origin master --allow-unrelated-histories
克隆仓库代码到本地
git clone 远程地址
git clone git@github.com:FX336494/admin_v1.git
拉取分支代码
git pull origin '分支名 ’
如:git pull origin 'dev'
提交文件到仓库
添加文件
git add ‘文件名’
添加文件先到缓存区
添加所有文件
git add .
点表示所有文件到缓存区
重命名文件名称
git mv 旧文件名 新文件名
如将`old.html`文件修改为`new.html`: git mv old.html new.html
提交指定文件
git add 文件名称
cd命令进入到文件所在的目录 或在文件管理器中找到文件右键 Git Bash Here
如:提交index.vue
: git add index.vue
然后commit
与 push
提交指定文件夹中的所有文件
cd命令进入到所要提交的文件夹或在文件管理器中右键 Git Bash Heregit add .
然后 commit
与 push
提交文件
git commit -m ‘备注’
如:git commit -m '首次上传'
推送文件到仓库
git push origin master
推送文件到仓库master(主)分支 主要是将暂存区里的改动给提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值, 这个哈希值也叫commit-id,commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的任何时候通过 与git reset的组合命令回到这里。
强制推送到分支
git push -u -f origin master
提交到远程仓库,这个命令中的 -f 是强制推送,因为远程仓库只有初始化的文件,所以强制推送上去就行了, 不加-f 会报当前分支没有远程分支,强制推送可以覆盖master,这样就完成了第一次提交的步骤)
删除仓库文件
查看目录
dir
删除指定文件
git rm 文件名
如: git rm index.html
返回到上一个版本代码
git reset --hard HEAD^
返回到上两个版本代码
git reset --hard HEAD^^
返回到上三个版本代码
git reset --hard HEAD^^^
查看不同版本的 id
git log --pretty=oneline
返回到指定版本代码
git reset --hard 具体版本号
注意是将**本地文件返**回到指定版本 如:git reset --hard 8ab7b23b2b305f9b793ed95a06c1add1d0a5cd61 然后 git push -f -u origin master 将代码推送到仓库
分支操作
设置默认分支名
git config --global init.defaultBranch main
查看有哪些分支
git branch
创建分支
git branch 分支名
切换分支
git checkout 分支名
创建和切换同时进行
git checkout -b 分支名
删除本地分支a
git branch -d a
强制删除本地分支a
git branch -D a
删除远程分支
git push origin --delete 分支名
合并分支
将dev
分支合并到master
分支
//先切换到master分支 git checkout master //拉取代码 git pull up master //合并代码 git merge dev //推送到master分支 git push origin master
查看已链接仓库信息
git remote
它会列出每个远程库的简短名字。
git remote -v
它会列出远程库的详细信息
恢复本地删除的文件
在本地项目中右键误删文件,想再pull回来,提示`Already up-to-date`
方法1:
git fetch --all
git reset --hard origin/master(master可修改为对应分支名)
git pull
方法2:
恢复单个文件
git checkout index.vue
git checkout 文件名恢复当前目录
git checkout .
or:git checkout 分支名 --index.uve
完整相对路径
git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。 而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge, 这样可能会产生冲突,需要手动解决。
github提交注释规范
git commit -m “提交类型+代码修改描述”
提交类型:
feat: 修改/增加新功能
fix: 修改bug/功能代码的变更
docs: 文档相关变更
style: 不影响代码含义的变更(空白/格式/缺少符号等)
refactor: 代码重构变更
perf: 改进性能的变更
test: 添加/修改现有的测试
chore: Build/.gitignore/辅助工具/库(文档生成)等变更
Example: feat:修改侧边栏默认状态
常见错误
git pull
error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.
错误:您尚未结束合并(合并头存在)。
提示:请在合并之前提交更改。
致命:因未完成的合并而退出。
方法1 : 保留本地更改
git merge --abort git reset --merge
然后commit 提交本地修改
git pull
方法2 : 放弃本地修改
git fetch --all git reset --hard origin/master git fetch
error: Your local changes to the following files would be overwritten by merge: xxx.vue xxx.ts Please commit your changes or stash them before you merge.
git stash // 暂存到堆栈区
git stash list // 查看stash内容
git pull // 拉取代码
git stash pop // 应用到本地分支
打开冲突文件,选择采用 ‘本地/线上/全部’ 代码
版权声明:本文为原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
关注微信公众号:"cq_xifan";