…
好记性不如烂笔头,特将最近用到的一些命令记录在我的小仓库。
一、简介
Git 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
二、创建仓库
三、场景命令
1. 克隆项目/拉取新项目
在已知远程仓库 http 或 ssh 地址的情况下,通过 git clone 拉取即可。
如是该项目的成员,在后续上传操作如下
- git add .
- git commit -m “fix: xx fiexd.”
- git push -u -f origin master
2. 第一次创建项目
首先需要在 github 或者 gitee 中注册账号,该步骤见上文—创建仓库。
在官网新建仓库,得到当前仓库的SSH地址
- git init // 初始化项目文件夹
- git add . / git add README.md // 添加所有文件 / 添加一个README.md文件 到暂存区
- git commit -m “上传的内容信息” // 备注 “上传的内容信息” , 并提交到本地仓库
- git remote add origin SSH地址 // 链接到远程仓库
- git push -u origin master // 提交到远程仓库
3. 多人合作
首次可以新建一个自己的分支,将主分支拉过来,这样不会影响到主分支
- git checkout -b dev // 创建分支,如果已经有 dev,可以使用git checkout dev直接切换分支
- git add .
- git commit -m “add some file.”
- git push origin 分支名 -u // 将文件上传到该分支的远程仓库
注意:git push origin dev -u 这行命令,若第一次推送到远程dev分支,加上 -u 将本地和远程的 dev 分支关联起来,否则后面在推送时会提示未关联远程项目,造成不必要的麻烦。这次加上-u关联起来后,后面就不用加-u 了,直接使用git push origin dev推送就行
若遇到问题可采用以下两条命令上传
- git pull --rebase origin master
- git push -u origin master
组员合并分支并且上传到主分支之后其他人如何操作?
- git checkout master // 假设 master 是我的主分支,该命令为 切换到主分支
- git pull // 拉取最新的master代码
- git checkout dev // 切换回dev
- git merge master // 将master内容合并到dev,确保代码的最新
- git add a.txt // add . 添加所有文件到暂存区
- git commit -m “add a.txt” // commit “add a.txt”
- git push origin dev // 上传到远程仓库的 dev 分支
同理,如果想要更新到主分支(master)那…
4. detached HEAD
detached是分离独立的意思,在git操作过程中 弹出 detached HEAD 是因为HEAD回到历史commit,然后对文件进行修改导致的**,产生了一个没有名称的分支**。
解决思路如下
- 在自己的代码的目录下打开 git bash
- 然后通过 git branch ,查看当前项目中的所有分支
- 先查看自己的当前分支的提交状态 git status
- 如果发现了别的分支 , 记录下那个版本号(比如我当时需要提交的分支是master,可是新创建的分支为head),记下最新提交的版本号
- 创建一个临时分支 git branch temp + 上面记录下的版本号
- 切换到你需要提交到的分支 git checkout master
- 将之前新增加的临时分支与你要提交的分支合并 git merge temp
- 删除临时创建的分支 git branch -d temp
- 最后回去检查一下代码,就会发现解决了问题
5.文件冲突
使用 git 提交代码时若遇到 detached HEAD 的问题不要慌,多人合作总会有一些文件相互都会使用,这个时候A将a.txt 加了一段话,B加了两句话这时候上传就会提示冲突。
解决思路如下
打开冲突文件,修改提示冲突的部分即可