最近的一个课程作业要求在服务器上完成项目,小组同学已在服务器上将项目git到了github,我已在服务器上建立了自己的文件夹,并将项目从github上拉下来,现在我要建立自己的分支,但遇到了一些问题。
命令行使用:
直接切换分支报错:
Cannot update paths and switch to branch at the same time
解决:
这是因为本地没有fetch远程origin的信息,所以先切换到对应的项目主目录
再执行:
git remote -v
git fetch origin
fetch后再切换分支:
git checkout -b t-branch origin/t-branch
就完成了,附加操作有:
# 查看所有分支
git branch
# 切换分支
git checkout main
每次编写/更新本地代码之前需要先commit和push之后,再pull最新的master/main分支,再合并到自己的branch
git pull origin main
# 首先确保当前是自己的分支 git checkout t-branch
git merge main
加入现在已在本地分支进行了代码的更新,现在要上传远程该分支的仓库:
将已修改文件添加至暂存区:
git add dir/filename # 添加指定文件
git add . # 添加所有已修改文件
将暂存区的改动提交到本地的版本库,使用git commit
命令我们就会在本地版本库生成一个40位的哈希值,用于版本回退
git commit -m "message" # message就是本次提交的简要说明
# 或直接
git commit
推送:
git push
# 强行push
git push -f origin t-branch
还没执行push,如何撤销commit?查看:
git commit后,如何撤销commit_git 撤销commit-CSDN博客
撤销push:
Git撤销对远程仓库的push&commit提交 - 朝曦Z - 博客园 (cnblogs.com)
git整个流程及vscode使用请看:
Git操作详解以及在VScode中的使用 - 知乎 (zhihu.com)
强行让一个分支与另一个分支相同(以下链接的方法一)
# 确保您当前位于要重置的分支。如果需要切换到该分支,可以使用以下命令:
git checkout <branch_name>
# 使用以下命令将当前分支重置为master分支的最新提交:
git reset --hard master
这一步只是让本地的代码和master一样,要让自己的远程分支和master一样,还需要提交和推送
Git 使一个git分支与master分支相同|极客笔记 (deepinout.com)
流程图:
这张图很重要,可以帮助理解整个流程。
例如在提交的时候的git add . 操作 ,就是对应工作区添加到暂存区
commit操作就是暂存区提交到本地仓库
在用vscode的git工具时遇到commit失败的情况,查看日志是编译器错误,可能某个配置文件有问题,故改用命令行执行
git commit -m 'message'
就好了