Git的一家老小

90 阅读6分钟

上期说到git,这期来具体说说git命令及具体使用方法

// 初始化git,使用此命令后可执行后续的git命令

git init //在根目录执行
// 首次拉去远端仓库命令

git clone http:XXX.git // 这样拉的是默认分支master

git clone xxx.git -b branch1 //此命令将远端默认分支拉下来然后在本地创建branch1分支存放
// 用于连接远端分支or删除远端分支关联关系

git remote -v //显示本地仓库连接仓库集合

git remote show origin //显示远端仓库的信息

git remote add origin http:xxx.GIT : 添加一个远程版本库关联

git reomte rm name 删除远端仓库

git remote rename old_NAME new_NAME // 修改远端仓库名称
// 将文件添加到暂存区可以有三种用法
git add [file1] [file2] // 指定文件提交

git add -u // 添加远端已有的文件进入暂存区

git add . //将本次改动的全部文件提交

git add -A // 将本地全部文件暂存

// 区分:第二命令和第三命令的区别就是2可以提交远端仓库没有的新东西,3避免新添加的
东西出现问题先暂存在本地,根据着不同需求去提交
git commit -m 'XXXX' //将暂存的文件保存在本地git

git commit -a //将所有的文件添加到git在vim编辑器中添加desc
// 在多人协作开发代码的时候就会使用到git pull了使用它来拉去同事的代码 合并在一块

git pull // 在远端分支和本地分支对应的时候直接pull

git pull origin branch1 //在没有链接远端分支的情况下 需要指定分支
//将本地暂存的分支提交到远端仓库 在新建仓库时,默认会自带dev和master分支,
这两个分支你拉下来直接就是对应的关系你可以直接使用git push。例如我新建了分支branch1,我
现在要提交到远端仓库需要这样写 

git push origin branch1

// 或者远端分支与本地分支连接一下

git push --set-upstream origin branch1 //这样push推送默认会连接远端分支 下次直接使用git push
// 比如说我们刚进公司 公司项目中有很多的分支,我们可以在远端git仓库查看也可以通过命令行来查看

git branch://查看本地所有分支信息

git branch -r //查看远程仓库所有分支

git branch -a //查看本地和远程仓库所有分支

git branch -vv //查看本地分支与远端分支是否关联
// 在开发中,我们完成一个阶段的开发,去完成下个阶段开发的时候就需要分支的概念了 两个人开发的
东西不一致就需要用户1建一个自己的分支 branch1用户2也建立一个自己的分支branch2

git checkout -b branch1 //建立自己的分支

git checkout branch //切回到自己的分支
// 同步远端分支
git fetch origin branch1 // 拿到远端branch1分支代码

git merge origin branch1 //合并到本地
// 代码回退命令,例如我们开发了一个功能但是项目报错了需要回归到上一个版本就要用到reset
git log // 查看自己提交的id 根据着ID回归

git reset --mixed commit_ID // 当前命令只针对暂存区的内容

git reset --soft commit-ID // 回归到某个版本,暂存区不会被删除

git reset --hard commit_ID // 回归到某个版本 暂存区会被删除

//重置成功后 强制提交代码
git push origin main --force

注:如果操作失误 在reset的时候多回退了 但是在git面板看不到这个commit_ID的时候,就使用git reglog
查看所有操作的命令
// revert命令和reset的作用是一样只不过他们的区别是很大的 我用reset重置代码是没有commit记录的但是
revert会重新生成一个commid记录会保留你之前写错误的代码

git revert commit_id //切回某个版本 提交不会删除commit记录
在开发中会遇到很多问题,比如说紧急需求我们在dev版本开发1功能,客户说我现在特别需要1功能,但是呢
我们在dev分支还有2/3的代码 这时我们就需要cherry-pick把当前分支提交的代码合并到master中

git cherry-pick commit_iD
// 合并代码 分版本开发时

git merge branch1 //合并分支1的代码
用法与merge类似,但是rebase更加强大一点,可以操作不同的commit合并成一个 然后单独把这
个文件给拉过去丢弃你不想要或者本地发布不相关的代码

git rebase dev //把dev的代码全部合并过来
 
// 命令用于将一个分支上的一段提交记录应用到另一个分支上branch1开始分支 commiT_iD开始的
commit节点branchMian目标分支
git rebase --onto branch1 commiT_iD branchMian

git rebase --continue // 命令继续应用提交记录
git rebase --skip //命令用于跳过当前提交记录并继续应用下一个提交记录
git rebase --abort //用户推出本次操作

//重头戏
git rebase -i HEAD~4 //将前四次代码合并为一次 出现选项
git rebase -i commit_ID1 commit_ID2 // 抽取第一个id和第二个id中的代码打包成一个自己的提交
1.pick:使用提交,不做任何更改。

2.reword:使用提交,但编辑提交消息。

3.edit:使用提交,但停止rebase以允许3/您修改提交。在修改提交后,您需要使用git add命令将更改标
记为已解决,然后使用git rebase --continue命令继续rebase过程。

4.squash:使用提交,并将其合并到前一个提交中。在合并提交时,您可以编辑提交消息。

5.fixup:与squash类似,但不保留提交消息。如果您想保留前一个提交的提交消息,请使用-C选项。
6.exec: 后接特定脚本,保存后将执行该脚本;
7.drop: 移除该提交对象

//根据自身的业务去做相应的处理 均用首字母即可 如果有冲突 解决冲突 然后添加 执行--continue
继续操作,操作完毕后push代码拿到自己的commit_ID

git rebase commit_Id // or git cherry-pick commit_id
vi编辑器中:wq:wq!:x:q:q!的详细区别 

:wq://表示保存退出
:wq!://表示强制保存退出
:x://表示保存退出
:q://在vim中表示退出
:q!://表示强制不保存退出,不对文件进行保存
// 在版本上线后 我们将master分支做一个节点把他打个包放在我们tag中 遇到问题的时候直接拿tag包即可

git tag -a  'v1.0.0' -m 'Tags简介' //打包tags

git push origin main:v1.0.0 --tags //推送到远端

git branch -b branch1 v1.0.0 //在tags基础上打分支
// 代码促储存 在a分支存 b分支也可以用

git stash save 'xxx':  //储存变更

git stash list: //查看储存区所有提交列表

git stash pop: //弹出并应用最近的一次储存区的代码提交

git stash drop stash@{n}: //删除某次储存记录

git stash clear: //清楚所有 stash 信息
// 删除无用代码文件
git rm .env //删除文件

git rm -r dist //删除目录