Git常用命令

Git是一种分布式版本控制系统,可以进行多人的协作开发,基本大部分的软件开发相关的公司都会使用该软件,下边记录一些常用的命令

安装Git

可以从Git官方网站下载适合操作系统的安装程序,win可以直接下载,常用的linux系统

Ubuntu

复制代码
apt-get install git

Centos

复制代码
yum install git

Linux平台下使用下述命令查看git版本:

复制代码
git --version

创建本地Git仓库并配置

要在本地创建一个新的Git仓库,可以使用以下命令:

复制代码
git init

用户信息配置

配置Git的用户信息,包括用户名和邮箱地址。在命令行中输入以下命令:

复制代码
git config --global user.name "Your Name"
git config --global user.email "youremail@example.com"

--global是可选项,带上该选项在仓库目录下运行上述命令之后,可以在本机所有的仓库中生效

查看配置命令:

复制代码
git config -l

删除对应的账户配置

复制代码
git config [--global] --unset user.name
git config [--global] --unset user.email

公钥

生成 Git 的公钥是为了在使用 Git 时进行身份验证。输入以下命令来生成 SSH 密钥对:

  1. 生成公钥

    复制代码
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    • -t rsa:指定生成 RSA 类型的密钥。
    • -b 4096:指定密钥的位数为 4096 位,提高安全性。
    • -C "your_email@example.com":在生成的密钥中添加注释,一般填写你的邮箱地址。
  2. 系统会提示你选择保存密钥的位置,默认为 ~/.ssh/id_rsa,也可以自定义路径。

  3. 然后系统会提示你设置密钥的密码(可选),设置密码可以提高密钥的安全性。

  4. 生成成功后,会显示公钥的路径,默认为 ~/.ssh/id_rsa.pub

  5. 使用文本编辑器打开公钥文件 id_rsa.pub,复制里面的内容。

  6. 将公钥内容粘贴到 Git 服务商(如 GitHub、GitLab)的 SSH 密钥设置中,以便进行身份验证。

生成的公钥可以用于与 Git 服务商进行安全的通信和身份验证。

将文件添加到Git仓库

将文件添加到Git仓库需要两个步骤。首先,使用以下命令将文件添加到暂存区:

复制代码
git add filename

然后,使用以下命令将文件提交到仓库:

复制代码
git commit -m "Commit message"

版本回退

git restore --staged <file>... 命令用于将暂存区(Staging Area)中的文件恢复到工作目录中的状态,即取消暂存的文件更改。

执行这个命令后,指定的文件将从暂存区还原到工作目录,文件的更改将不再处于暂存状态。

git reset 命令在 Git 中用于撤销更改、移动 HEAD 指针或重置暂存区。以下是 git reset 命令的常用参数和说明:

  1. git reset HEAD <file>

    • 这个命令用于将暂存区中指定文件的更改撤销,同时保留工作目录中的更改。
    • <file> 是要撤销暂存的文件名。
  2. git reset --soft <commit>

    • 这个命令将当前分支的 HEAD 指针移动到指定的提交,但保留工作目录和暂存区的更改。
    • <commit> 是要重置到的提交的引用(如 commit hash、分支名等)。
  3. git reset --mixed <commit>

    • 这个命令将当前分支的 HEAD 指针移动到指定的提交,并重置暂存区,但保留工作目录的更改。
    • <commit> 是要重置到的提交的引用。
  4. git reset --hard <commit>

    • 这个命令将当前分支的 HEAD 指针移动到指定的提交,并重置暂存区和工作目录,丢弃所有更改。
    • <commit> 是要重置到的提交的引用。
  5. git reset --merge

    • 这个命令用于解决合并冲突时,取消合并并重置到合并之前的状态。

通过合理使用 git reset 命令及其参数,可以有效地管理 Git 仓库中的提交历史和更改状态。请谨慎使用 git reset --hard 命令,因为它会永久丢弃工作目录中的更改。

假设工作区文件有 aaa,增加bbb,变成aaa bbb,之后add、commit

工作区 暂存区 版本库 reset携带的选项
aaa bbb aaa bbb aaa --soft
aaa bbb aaa aaa --mixed :默认选项
aaa aaa aaa --hard:慎用这个选项

在工作区修改了很多文件之后,突然发现修改错了,如何恢复?

  1. 手动修改
  2. 使用 git checkout --filename

查看Git仓库状态

你可以使用以下命令查看Git仓库的状态:

复制代码
git status

查看提交历史

要查看提交历史,可以使用以下命令:

复制代码
git log
git log --pretty=oneline
git log --pretty=oneline --abbrev-commit
git reflog 查看每次的log 包括撤销
  • --pretty=oneline选项指定了输出格式为每个提交的一行显示,显示的信息包括提交的哈希值和提交信息。这种格式适合在终端中查看提交历史,信息简洁明了。

  • --abbrev-commit选项指定了显示的提交哈希值的缩写长度。默认情况下,Git会显示完整的40位哈希值,但使用--abbrev-commit选项可以缩短哈希值的长度,使得显示更加简洁。

标签管理

在 Git 中,标签(tag)是用来标记特定提交的稳定版本或重要节点的指针。以下是一些常用的 Git 标签操作:

  1. 列出所有标签

    复制代码
    git tag

    这个命令会列出所有的标签。

  2. 创建轻量标签

    复制代码
    git tag <tag_name>
    git tag <tag_name> commit_id

    这个命令会在当前提交上创建一个轻量标签,只包含标签名。

  3. 创建附注标签

    复制代码
    git tag -a <tag_name> -m "tag message"

    这个命令会在当前提交上创建一个附注标签,可以添加标签信息。

  4. 查看标签信息

    复制代码
    git show <tag_name>

    这个命令会显示指定标签的详细信息。

  5. 推送标签到远程仓库

    复制代码
    git push origin <tag_name>

    这个命令会将指定标签推送到远程仓库。

  6. 删除本地标签

    复制代码
    git tag -d <tag_name>

    这个命令会删除指定的本地标签。

  7. 删除远程标签

    复制代码
    git push --delete origin <tag_name>

    这个命令会删除指定的远程标签。

Git 中管理标签,标记重要的提交或版本,并与团队共享稳定的版本信息。

Git分支

Git允许创建分支来并行开发不同的功能

创建分支:

复制代码
git branch branchname

要查看本地分支,可以使用以下命令:

  1. 查看所有本地分支

    复制代码
    git branch

    这个命令会列出所有本地分支,并在当前分支前面标记一个 * 符号。

  2. 查看远程分支和本地分支

    复制代码
    git branch -a

    这个命令会列出所有本地分支和远程分支。

  3. 查看本地分支的详细信息

    复制代码
    git branch -v

    这个命令会列出所有本地分支,并显示每个分支最后一次提交的信息。

切换分支

要切换到一个不同的分支,可以使用以下命令:

复制代码
git checkout branchname
git checkout -b branchname  # 创建并切换到新的分支

合并分支

完成一个功能的开发后,可以将分支合并到主分支。使用以下命令可以实现分支合并:

复制代码
git merge branchname

删除分支

  1. 删除本地分支

    复制代码
    git branch -d <branch_name>

    或者

    复制代码
    git branch -D <branch_name>
    • -d:表示删除指定分支,如果分支的工作还未合并到当前分支,会提示错误并阻止删除。
    • -D:表示强制删除指定分支,即使分支的工作还未合并到当前分支也会删除。
  2. 删除远程分支

    复制代码
    git push origin --delete <branch_name>

    或者

    复制代码
    git push origin :<branch_name>

    这两个命令都可以用来删除远程仓库中的指定分支。

请注意,在删除分支之前,确保不再需要该分支的代码或提交记录。删除分支是一个不可逆的操作,删除后的分支及其提交记录将无法恢复。

关联分支

通过以下步骤为当前分支 dev 设置与之关联的远程分支:

  1. 手动设置远程分支

    复制代码
    git branch --set-upstream-to=origin/dev dev

    这个命令会将本地的 dev 分支与远程的 dev 分支建立关联。

  2. 推送本地分支到远程

    如果需要将本地分支 dev 推送到远程仓库,可以使用以下命令:

    复制代码
    git push -u origin dev

    这样会将本地的 dev 分支推送到远程仓库,并建立关联。

通过以上步骤,可以解决当前分支没有与之关联的远程分支的问题,并确保在推送或拉取时能够正确同步代码。

远程开发

从远程仓库克隆后,实际上 Git 会⾃动把本地的 master 分⽀和远程的 master 分⽀对应起来, 并且,远程仓库的默认名称是 origin 。在本地我们可以使⽤ git remote 命令,来查看远程库的信息

⽤ git remote -v 显⽰更详细的信息

复制代码
tong@atong3:~/unskilled-vim$ git remote -v
origin  git@github.com:atongrun/unskilled-vim.git (fetch)
origin  git@github.com:atongrun/unskilled-vim.git (push)

克隆完成仓库之后,git branch -a 查看分支,可以在本地创建分支,通过git checkout -b dev命令,增加并且切换到dev分支

复制代码
tong@atong3:~/unskilled-vim$ git branch -a
* dev
  main
  remotes/origin/HEAD -> origin/main
  remotes/origin/dev
  remotes/origin/main

将本地的 dev 分支推送到远程仓库,并将本地的 dev 分支与远程仓库的同名分支建立关联关系

复制代码
git push --set-upstream origin dev

推送到远程仓库

如果想与团队成员代码,可以将代码推送到远程仓库。首先,添加远程仓库的地址:

复制代码
git remote add origin remote_repository_url

然后,将代码推送到远程仓库:

复制代码
git push -u origin master

解决Git冲突是在合并分支或拉取远程更新时可能遇到的情况。下面是解决Git冲突的一般步骤:

步骤1:检测冲突

在合并分支或拉取远程更新时,如果Git检测到冲突,会在文件中标记出冲突的部分。可以使用git status命令查看哪些文件有冲突。

步骤2:打开冲突文件

找到有冲突的文件,打开它并查看冲突的部分。冲突的部分会被标记为类似以下的格式:

复制代码
<<<<<<< HEAD
// 本地分支的更改
=======
// 远程分支的更改
>>>>>>> branch_name

步骤3:手动解决冲突

根据冲突标记,手动编辑文件以解决冲突。需要决定保留哪些更改或如何合并这些更改。删除冲突标记并保留想要的更改。

步骤4:标记冲突已解决

在解决完冲突后,保存文件并使用以下命令标记冲突已解决:

复制代码
git add <conflicted_file>

步骤5:完成合并

继续合并分支或拉取远程更新,并完成合并操作:

复制代码
git commit -m "Merge conflict resolved"

步骤6:推送更改

如果是在拉取远程更新时解决冲突,完成合并后需要将更改推送到远程仓库:

复制代码
git push

通过以上步骤,可以解决Git冲突并成功合并分支或拉取远程更新。记得在解决冲突时仔细审查更改,确保代码的完整性和正确性。

相关推荐
透明的玻璃杯2 小时前
git应用
git
炸炸鱼.4 小时前
Git+Jenkins实战(一):从零搭建自动化发布与回滚系统(附完整代码)
git·jenkins
言6666 小时前
要忽略前端依赖包node_modules的文件在目录下 git暂存区消失
git
胡小禾7 小时前
Git Worktree
git
程序员小羊!7 小时前
18 GIt
git
怣疯knight7 小时前
Git 本地分支关联远程分支 常用命令汇总
git
ANNENBERG8 小时前
git分支开发管理
git
坤坤藤椒牛肉面8 小时前
GIT的使用
git
w3296362718 小时前
使用 OpenCode 在 Windows 上加速安装 Playwright 的完整指南
windows·git
我家媳妇儿萌哒哒1 天前
git:无法推送refs到远端。您可以试着运行“拉取”功能,整合您的更改。
git