Git常用命令使用记录以及个人理解
Posted 为什么会有bug
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git常用命令使用记录以及个人理解相关的知识,希望对你有一定的参考价值。
(没js权限,可恶,这笔帐我记住了qaq)
简介
笔者最近开始接触git团队开发项目,因为对git并不熟悉,故作此随笔以防遗忘。
如有错误或者纰漏,请指教。
记录一个使用git的教学游戏网站https://learngitbranching.js.org/?locale=zh_CN
本文分成两个部分,上半部分为常用命令集合,下半部分为拉取和推送代码的完整步骤
常用命令
初始化本地仓库
git init
添加/取消 关联远程仓库
git remote add origin +ssh路径
git remote remove origin
查看当前连接的路径
git remote -v
新建本地分支
git checkout -b <分支名>
git checkout -b dev一般用于创建分支,若分支存在则切换分支
新建远程分支&推送代码
git push origin <自己本地分支名>:<自己远程分支名>
git push origin dev:dev
克隆代码
git clone -b <指定分支名> <远程仓库地址> git clone -b dev https://gitee.com/xxx.git 若本地没有叫dev的分支,则会新建一个
查找提交版本信息
git log
强制回溯版本
git reset --hard
关于origin
这里提一下origin,origin就是远程仓库链接的别名
详细理解可以到-> https://www.zhihu.com/question/27712995/answer/39946123
拉取代码
git pull origin <远程分支名>:<本地分支名> git pull origin dev:dev //关于拉取他人代码时,推荐本地新建与远程分支同名的分支,拉取代码时,切换到对应分支,这样不会对自己分支造成影响 git push -u origin dev:dev //关于-u的作用,使用git push -u origin dev:dev后,git会将你的本地分支dev与远程仓库分支做一个链接,下一次想要push的时候,就可以直接使用git push而后面不用跟参数,可以用来简化推送命令 git push -u origin dev:dev -f //强制提交到远程分支(不推荐不推荐不推荐强制操作,很容易出现奇奇怪怪的问题)
合并代码
git merge <被合并的分支名> //记得先切换到自己进行合并操作分支 然后再去合并被合并的分支
关于branch的操作
git branch //列出本地已经存在的分支,并且在当前分支的前面用"*"标记
git branch -r //查看远程版本库分支列表 remote git branch -a //查看所有分支列表,包括本地和远程 all git branch -d dev //删除dev分支 delete
切换分支
git checkout dev
关于提交(push)代码的常规流程
首先是将全部文件添加至暂存区
git add . (注意是空格然后 .)
然后提交到本地仓库
git commit -m“备注”
如果你的代码版本是团队最新的代码,你可以跳过合并代码这一步
切换分支
git checkout dev
dev:这里一般指主分支,正常情况下主分支代码是最新的版本,你可以将dev换成你的团队中最新的分支名
在本地dev分支拉取最新代码
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin dev:dev
也有使用fetch的方式,会在下文中具体阐述git fetch和git pull的区别
切换到自己分支
git checkout <自己分支名>
合并代码
git merge <被合并分支名>
最后推送本地代码到远程分支
git push origin <自己本地分支名>:<自己远程分支名>
关于拉取(pull)代码的常规流程
例如目前本地有分支a,b,本地a分支想要拉取远程b分支代码
首先切换到分支b
git checkout b
然后pull代码
git pull origin b:b //第一个是远处分支,第二个是本地分支
切换到自己a分支
git checkout a
合并b分支代码
git merge b
这样做的好处是,万一拉取的有问题,不会对自己的代码造成影响(虽然有时不解决冲突就回不到自己分支 -_-|| )
关于git fetch和git pull的区别
git pull下来后会直接合并,容易出现问题
而git fetch下来的话,新的代码先不合并也不显示(保存在?待补充),可以先比较,再决定是否合并
具体优劣等我用几年再说(2021/11/28)
使用git fetch后,如何合并代码
方法1
git fetch origin <分支名> //从远程分支下载到本地并新建一个分支
git log -p <本地分支名>.. origin/<远程分支名> //比较本地的仓库和远程参考的区别
git merge origin/<分支名> //把远程下载下来的代码合并到本地仓库,远程的和本地的合并
方法2
git fetch origin <远程分支名>:<新建本地分支名> //从远程分支下载到本地并新建一个分支 git diff <新分支> //比较当前分支和新建分支的不同,这步之前应先切回你想要进行合并操作的分支 git merge <新分支> //合并新建分支到当前分支 git branch -d <新分支> //删除新建分支
方法3
git rebase (存疑,待补充/2021/11/28)
以上是关于Git常用命令使用记录以及个人理解的主要内容,如果未能解决你的问题,请参考以下文章