概述
git基本知识和常见问题的归纳整理(非常小白)
- 前言
- 一、基本知识
- 二、常见问题
- 1.上传错误代码/想要删除自己提交的代码,使git回退到某一版本怎么办?
- 2.合并代码出现(分支|MERGING)怎么办?
- 3.如何解决合并代码出现的冲突呢?
- 4.如何避免git提交记录中看到Merge branch ‘master’ of XXX而不是自己写的信息?
- 5.修改了很多代码,但只需要提交其中几个,该怎么操作?
- 碎碎念
前言
刚进项目组实习,要使用git的时候,我是懵的。
去学习相关资料时,
脑子:我会了!我记住了!多简单呐!
手:?这命令真是这样输吗
等到真正地实践过了几次,糊糊涂涂地做了些东西,就有点悟了
所以,为了防止自己忘记,这篇博客就诞生了(狠狠地戳自己脑壳,为啥你这么笨!)
前提:安装了git bash
一、基本知识
先整点最基础的命令:
克隆远程代码到本地: git clone http://XXXXXX.git(项目地址)
克隆指定远程分支代码到本地: git clone -b <远程分支名> <项目地址>
初始化本地仓库:git init
(同级目录下会出现一个隐藏的.git文件)
查看本地分支: git branch
查看远程分支: git branch -r
查看全部分支: git branch -a
(包括本地和远程分支)
切换本地分支:git checkout <branchName>
创建并切换本地分支: git checkout -b <branchName>
从远程仓库里拉取一条本地不存在的分支: git checkout -b <本地分支名> origin/<远程分支名>
(这会在本地创建一个分支并和远程分支关联。)
合并某分支到当前分支:git merge <branchName>
删除本地分支:git branch -d <branchName>
查看当前git状态信息:git status
(查看是否有文件未提交),推荐使用 git status -s
以精简的方式显示文件状态
提交本地代码到git索引(缓存)中:git add .
(注意add和"."之间有一个空格)
本地从缓存中加到文件库(repository)中:git commit -m "版本描述"
将指定远程分支的最新内容拉到本地,不进行合并:git fetch origin <branchName>
将指定远程分支最新内容拉下来后与当前本地分支直接合并:git pull origin <branchName>
推送本地分支至指定远程分支:git push origin <branchName>
参考文档:https://www.cnblogs.com/cblx/p/12467083.html
二、常见问题
1.上传错误代码/想要删除自己提交的代码,使git回退到某一版本怎么办?
- 先执行
git log
查看提交版本的哈希值(或者说叫commit id) - 基于实际情况进行版本回滚
①强制回到某个版本,注意是把所有文件都回到当时版本并且把后面新增的文件删除
git reset --hard <hash>
(就是commit后面那一串东西)
②把某个版本的文件覆盖到当前工作区,但后面增加的文件依然保留
git checkout <hash>
③单独把某个文件回滚到某个版本
git checkout <hash> <fileName>
- 重新强制提交代码:
git push origin <branchName> --force
详情可以参考:Git版本回退及 git log 、 git reset --hard commit_id 的基本使用
(内含回滚错了的解决方法噢)
2.合并代码出现(分支|MERGING)怎么办?
- 将代码回退到提交提交代码的当前状态(只是撤销merge,并未解决冲突)
git reset --hard HEAD
- 提交当前分支代码
git pull origin <branchName>
3.如何解决合并代码出现的冲突呢?
- 如果是使用git pull 或 merge 合并,冲突解决参考:git merge 冲突解决
- 由于
git pull origin <branchName>
需要另外打开提交文件去手动修改冲突内容,本人更喜欢用git pull --rebase origin <branchName>
来合并代码,只需要根据提示去解决冲突,将修改add后执行git rebase –continue继续操作,或者git rebase –skip忽略冲突。
想了解git pull
与git pull --rebase
的区别,可参考:https://www.cnblogs.com/ellen-mylife/p/12794245.html
如果觉得一个个修改冲突太麻烦,想要一次性解决,请各位朋友找到解决方法后在评论区里放个链接,因为我也想知道≧ ﹏ ≦
4.如何避免git提交记录中看到Merge branch ‘master’ of XXX而不是自己写的信息?
直接使用 git pull –rebase
拉取合并新的变动到本地。
参考:Git push 时如何避免出现 “Merge branch ‘master’ of …”
以下是我自己操作的实例:
把修改代码提交到dev打包测试,没问题后提交到uat的过程
5.修改了很多代码,但只需要提交其中几个,该怎么操作?
git status -s
查看仓库状态
git add <fileName>
增加其中的一个文件
git stash -u -k
重要操作:忽略其他文件,隐藏其他的修改文件,这样提交的时候就不会提示未被add的文件了
git commit -m "只提交其中的一个文件"
提交这个文件
git pull origin <branchName>
拉取最新的开发分支
git push origin <branchName>
(把提交的文件推送到远程分支)
git stash pop
重要操作:回复之前忽略的文件
git status -s
再次查看仓库状态,可以看到除了提交外的其他修改文件
参考文档:GIT提交大量修改代码中的几个(一般只需要提交其中的几个)
碎碎念
咸鱼在写上述内容的时候又把知识过了一边,然后脑子又开始宕机了……依然是一只没有大志、只想摸鱼、脑子还不太好使的菜狗,有错欢迎评论指出,其他勿扰( ̄︶ ̄*))
遇到了别的常见问题可能会继续更新噢,对的,可能(●’◡’●)
最后
以上就是愤怒世界为你收集整理的git基本知识和常见问题的归纳整理(非常小白)前言一、基本知识二、常见问题碎碎念的全部内容,希望文章能够帮你解决git基本知识和常见问题的归纳整理(非常小白)前言一、基本知识二、常见问题碎碎念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复