【git命令】【代码管理】不同情况下的使用

首次拉取分支代码

git init
git remote add origin <远程分支地址>
git fetch origin <远程分支名称>
git checkout -b <本地分支名称> origin/<远程分支名称>

设置/修改git账号

 git config --global user.email "xxx"
 git config --global user.name "xxx"

添加本地文件到远程分支

git add <本地分支文件地址> 如:git add src/pages/order/
git commit -m "提交日志"
 git push origin HEAD:<远程分支名称> 

删除远程分支文件

git rm -r -n --cached <远程分支文件地址>  如:git rm -r -n --cached src/pages/order
// 使用 -n 参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览
// git rm -r 参数为递归删除,主要是在删除文件夹时可以递归删除文件夹下面的文件或文件夹
git rm -r --cached <远程分支文件地址>
git commit -m "日志"
git push origin HEAD:<远程分支名称>
撤销add
git reset HEAD 文件名
撤销本地修改
git checkout -- 文件
撤销本地commit
git reset --soft HEAD^

提交某个文件夹下的所有修改

git add <文件路径>/*
git commit -m “提交日志"
git push origin HEAD:<分支名称>

通用查看命令

git status
git branch // 查看所有本地分支
git branch -a // 查看所有远程分支
git branch | grep 'branchName' // 分支模糊查找
git diff <文件地址> // 如:git diff src/pages/categories/_config.json
git remote -v // 查看远程仓库地址
git config user.name // 查看用户名
git config user.email // 查看邮箱地址

将远程origin仓库的xx分支合并到本地的yy分支

git fetch origin <远程分支名称>
git checkout <远程分支名称> // 切换到该分支
git merge FETCH_HEAD

合并分支代码

// 要合并的两个分支代码先pull最新的代码
git checkout -b <本地分支名称> orgin/<远程分支名称> // 将要并入的分支创建本地分支,拉取到本地
git pull origin <远程分支名称>
// merge前,确认本地分支代码是最新的,不是最新的,先切换到该分支(git checkout <本地分支名称>),拉取代码(git pull orgin <远程分支名称>),完成后切换到要并入的分支(git checkout <本地分支名称>),再进行下一步
git merge <本地分支名称>
git commit -m "" // 提交本次合并
git push origin <远程分支名称>
取消本次合并
git merge --abort // 中止合并
git reset --merge // 撤销合并
git pull orgin <远程分支名称> // 拉取代码

从主分支切出一个子分支

git checkout master   //切换到本地master分支
git pull origin master   //更新远程master分支到本地
git checkout -b newBranch(本地)  //创建并切换到newBranch分支
git push -u origin newBranch(远程) //推送到远程并与远程的newBranch关联

将当前修改添加到暂存区

git stash save "xxx" // 该命令不会save没有版本控制的文件
// 如果是新添加文件 先git add <文件路径>,再git stash save "xxx"

恢复暂存区文件

git stash apply stash!{n} // 恢复缓存区内容,但不删除
git stash pop // 恢复最新的进度到工作区,会删除当前进度
git stash list // 获取所有的stash存储
git stash drop // 丢弃暂存的内容

删除add到暂存区的修改

git rm --cache xxx.js // 只把文件从暂存区删除,不会修改文件的内容,也不会删除文件 
git rm -f xxx.js //直接把文件从暂存区删除,同时删除物理文件,回收站也找不到

git reset --soft HEAD^13.放弃本地commit修改,强制拉取
git fetch --all // 下载远程仓库最新内容,不做合并
git reset --hard origin/<远程分支名称> //HEAD指向对应远程分支最新版本

放弃上一次的提交(push完成的)

删除上次提交后,本地和远程仓库的 数据都将删除,所以删除上次提交前,记得备份备份备份数据!!!

git reset --hard HEAD^ // HEAD是指向最新的提交,上一次提交是HEAD^,上上次是HEAD^^,也可以写成HEAD~2 ,依次类推
git push origin <远程分支名称> -f
删除上次提交还可以使用revert命令
git revert HEAD
git push origin <远程分支名称>
revert和reset的区别

revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在;
reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录

拉取远程新切的分支

git checkout master
git fetch origin // 同步远程服务器上的数据
git checkout -b <本地分支名> origin/<远程分支名>

删除分支

-删除远程分支:git push origin --delete <远程分支名称>
-删除本地分支:git branch -d <本地分支名称>
-清理本地无效分支(远程已删除本地没删除的分支): git fetch -p

回退到某个commit版本

git reset --soft <commit> // 回退到某个commit
 git commit -m "回退" // 提交回退后的代码

git push origin <branch> /推送到远程仓库

reset HEAD 后,想要撤回

git reflog //查看所有HEAD的历史
git reset --hard {commitid} // 返回到某一个操作日志

更新本地分支代码

方式1:

git fetch origin <远程分支名称> // 将远程分支代码下载到本地分支
git merge origin/<远程分支名称> // 将拉取的远程分支代码合并到本地分支

方式2:

git pull origin <远程分支名称> // 将远程分支代码拉取并合并到本地,相当于fetch + merge

放弃本地修改

单个文件夹:

git checkout -- <filename>// 使用 HEAD 中的最新内容替换掉你的工作目录中的文件,已添加到暂存区的改动以及新文件都不会受到影响

所有修改与提交:

git fetch origin //获取远程最新的版本历史
git reset --hard origin/master //本地主分支指向远程最新

git自定义

gitk //内建的图形化 git
git config color.ui true //彩色的 git 输出
git config format.pretty oneline //显示历史记录时,每个提交的信息只显示一行
git add -i //交互式添加文件到暂存区

修改远程分支名称

git branch -m main master
git fetch origin
git branch -u origin/master master
git remote set-head origin -a

git 命令使用比较灵活,每种情况可能有多种方法,可根据个人习惯及需求选择不同的命令

报错处理
  1. You have not concluded your merge (MERGE_HEAD exists).
    Please, commit your changes before you merge.
    解决:上边第8条中,取消本次合并步骤
  2. git push时提示报错: Everything up-to-date
    原因及解决:未add,commit,执行add commit后再push
  3. “git init” 的时候出现:Reinitialized existing Git repository in D:/master/.git/
    表示该文件夹已经存在init 的.git文件
    解决方法:可以使用 rm -rf .git,删除.git,然后在 git init 即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值