git全面详解,一文了解全程

一、常见命令

1.git常用命令

HEAD 表示当前所在的分支节点

git rebase <branch> 将当前分支提交到branch分支上

Git checkout <branch>^ 切换到当前分支的最近一次提交的父提交

git checkout <branch>~n 切换到当前分支的最近n次提交的父提交

Git branch -f <branch1> <branch2> 将1分支强行指到2分支

Git reset <branch> 回退到某个分支

Git revert <branch(HEAD)> 将上述分支的之前提交作为新提交

二.注意事项

1. 流程

使用git init进行初始化,此时位于工作区(git clone也可以),git add进入暂存区,git commit进入仓库,git push提交到远程仓库,本项目中使用git commit -s -m "feat: Add feat xyz (ADOS-1)"

-s 表示添加签名

1. 初始化项目

  • 创建一个GitLab仓库,并将其克隆到本地:

git clone https://gitlab.com/yourusername/yourproject.git

2. 创建和切换分支

  • 在本地创建一个新的分支以开始你的工作:

git checkout -b feature-name

  • 开始在新分支上编写代码。

3. 提交更改

  • 当你完成一部分工作后,提交更改到本地分支:

git add .

git commit -m "Add initial implementation of feature"

4. 拉取最新代码

  • 在推送你的更改之前,确保从主分支拉取最新的代码:

git checkout main

git pull origin main

git checkout feature-name

5. 解决冲突(如果有的话)

  • 如果有冲突,你需要手动解决这些冲突,然后再次提交更改。

6. 推送更改到远程分支

  • 将你的更改推送到GitLab上的远程分支:

git push origin 本地分支名:远端分支名(若是名称一致可以直接用一个)

7. 创建合并请求(Merge Request, MR)

  • 登录到GitLab,找到你的项目,选择“Merge Requests”。

  • 点击“New Merge Request”,选择源分支(source branch)为你的功能分支,目标分支(target branch)通常为主分支或开发分支。

  • 添加标题和描述,然后提交。

2.分支

方法一:

可以直接拉取该分支,名为branch1

git clone -b(--branch) name url

方法二:

git clone url

这样拉取时可以拉取整个main函数,然后切换到具体的分支

1.检查远程分支branch1是否已经存在本地。如果之前没有拉取过这个分支,你需要先将远程的branch1分支建立为一个新的本地分支:

该命令是在本地建立分支,并拉取分支

git checkout -b branch1 origin/branch1

2.如果branch1分支已经被之前拉取过并且已经作为一个本地分支存在,那么你可以直接切换到它:

git checkout branch1

分支合并,首先切换分支

再使用git merge <branch> 能合并分支

这种情况会合并分支并进行创建新版本

3.解决多人合作分支冲突

若有人先提交,则需要先git pull下来

会发现有修改的地方,此时进行修改后,重新进行push

(1)拉取远程branch1分支的最新更改

git fetch origin branch1

(2) 合并远程branch1分支到你的本地分支

git merge origin/branch1

在这个步骤中,Git会尝试自动合并两个分支。如果在同一个文件的相同位置有冲突,Git将无法自动解决这些冲突,并会停止合并过程,标记出冲突的文件。

(3) 检查冲突

当Git报告冲突时,它会在冲突的文件中插入特殊的冲突标记。这些文件现在处于未合并状态,你可以在命令行中看到它们:

git status

(4) 解决冲突

手动编辑这些文件,删除冲突标记,并决定保留哪一方的更改,或者合并双方的更改。

git fetch origin git checkout branch1 git merge origin/branch1

一旦你解决了所有冲突,你需要使用git add命令来标记这些文件,告诉Git冲突已经被解决,并git mergegit commitgit push

若没有关联就git push origin branch进行关联

4.版本回退

git reset --hard 版本号

5.推送到分支

git push

三、问题的解决方案

Git log --graph

首次建立仓库

Git init

Git add .

Git commit -m 'first commit'

Git remote add origin url (origin以后就对应url远程仓库,相当于给远程仓库起别名)

Git push -u origin master (推送本地master分支到url的master)

Git push -u origin dev(-u 就建立了链接)

回到家,clone下来

Git clone url (默认拉下来是master分支,但可以checkout到dev分支,这种情况默认是起别名origin)

Git checkout dev

改改改

Git push origin dev

在家开发了一半,到公司里要继续进行开发

Git pull origin dev(相当于fetch+merge,若有冲突进行打开合并)

每次只开发了一点,多次开发后需要进行合并

rebase变基

用法一:

Git rebase -i 版本号 (会将该版本号和之后的版本号进行合并)

Git rebase -i HEAD~3 (从当前HEAD开始找最近的三条记录进行合并)

用法二:

Git rebase 分支名称

用法三:

Git fetch origin dev

Git rebase origin/dev 防止合并分叉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值