git常用命令详解

HEAD的含义

HEAD所指向当前版本
HEAD^ 上1个版本
HEAD^^ 上2个版本
HEAD~1 上1个版本
HEAD~2 上2个版本

git查看提交记录

  1. 使用git log查看历史版本记录:
    $ git log --oneline

  2. 查看某文件的历史提交记录
    $ git log filename

  3. 使用git reflog查看历史版本记录:
    $ git reflog

  4. 提交到本地版本库:
    $ git commit -a -m '第n次提交,新增内容:'

git打标签

  1. 查看本地所有标签:
    $ git tag 或者 git tag –l

  2. 查看远程所有标签:
    $ git ls-remote --tags origin

  3. 基于当前所在commit-id创建标签:
    $ git tag –a <tag_name>
    $ git tag -a <tag_name> -m "标签"

  4. 以某一个特定的提交为tag
    $ git tag –a <tag_name> <commitid>

  5. 把本地某一个标签推送到远程:
    $ git push origin <tag_name>

  6. 把本地所有标签推送到远程:
    $ git push origin –tags

  7. 查看本地某个标签的详细信息:
    $ git show <tag_name>

  8. 切换标签:
    $ git checkout <tag_name>

  9. 删除本地标签
    $ git tag -d <tag_name>

  10. 删除远程标签
    $ git push origin :refs/tags/<tag_name>

  11. 例子:把<tag1_name>标签重命名为<tag2_name>标签
    $ git tag <tag2_name> <tag1_name>
    $ git tag -d <tag1_name>
    $ git push origin :<tag1_name>
    $ git push --tags

git对比差异

  1. 比对工作区与暂存区中文件的差异:
    $ git diff readme.txt

  2. 比对暂存区与本地版本库中文件的差异:
    $ git diff --cached readme.txt

  3. 比对工作区与本地版本库中文件的差异:
    $ git diff HEAD readme.txt

  4. 查看两个文件之间的差异:
    $ git diff <file1> <file2>

  5. 这个对比是在本次修改和某次提交之间进行的:
    $ git diff <commit id> <file>

  6. 查看两个分支间的区别:
    $ git diff branch1 branch2

  7. 查看两次提交之间的有差异的文件:
    $ git diff <commit 1> <commit 2> --stat

git查看文件列表

  1. 查看暂存区中的文件列表:
    $ git ls-files

  2. 查看本地版本库中的文件列表:
    $ git ls-files --with-tree=HEAD

git show

  1. 查看某一次commit对应的文件修改情况
    $ git show comitid
  2. 查看某个文件的某个版本的具体内容
    $ git show commitid:filename
  3. 查看某个某个文件的某次版本提交记录
    $ git show commitid filename

git删除文件

  1. git rm --cached filename:仅删除暂存区中的指定文件。
  2. git rm filename:删除工作区和暂存区的文件。
  3. 通过git commit命令进行提交,可以将本地库中的文件文件也删除。

git checkout

  1. 当执行 git checkout . 或者 git checkout -- <file>命令时,会用暂存区全部或指定的文件替换工作区的文件,会清除工作区中未添加到暂存区中的改动,即撤销本地工作目录的修改。【缓存区的文件还存在,以缓存区为标准,使工作区和它一致】
    如果文件已添加到暂存区,可使用git reset HEAD <file>命令将缓存区同步到指定提交。

  2. 当执行 git checkout HEAD . 或者 git checkout HEAD <file> 命令时,会用 HEAD 指向的
    master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。 【但是不会清除新增的文件。】

  3. git checkout 支持检出指定目录、文件,通过sparse-checkout文件定义要检出目录。

git merge

将new_branch分支的内容合并到master分支:

  1. Fetch and check out the branch for this merge request
    git fetch origin
    git checkout -b new_branch origin/new_branch

  2. Merge the branch and fix any conflicts that come up
    git checkout master
    git merge --no-ff new_branch

  3. Push the result of the merge to GitLab
    git push origin master

如果想从其他分支合并某次的commit,可以使用git cherry-pick
用法:git cherry-pick <commit id>

git基础配置

  1. 在首次commit时,都会提示要配置username、useremail:
    $ git config --global user.name “name”
    $ git config --global user.email “email”

  2. 添加秘钥

  3. 配置命令别名:
    如用co表示checkout
    $ git config --global alias.co checkout

  4. 查看已有的配置信息:
    $ git config --list

.gitignore文件

对于不想纳入git管理的文件,可以在仓库根目录下创建一个名为 .gitignore 的文件,列出要忽略的文件模式。下面看一个 .gitignore 文件的例子:

# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为 txt 的文件
doc/**/*.txt
#跟踪某类文件
!*.c
#跟踪某个文件夹
!/plutommi/mmi

常见问题汇总

  1. 提交空目录
    Git仅仅跟踪文件的变动,不跟踪目录
    在要上传的空目录下创建.gitkeep文件

  2. 设置忽略文件权限变更
    在git仓库中命令行下执行git config core.fileMode false

  3. 本地删除或修改文件后如何获取远程的该文件
    $ git fetch
    $ git checkout origin/remotebranch filename

  4. 如何放弃本地修改,用远程库最新内容强制覆盖本地代码
    $ git fetch
    $ git reset --hard origin/master

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: git checkout命令Git中一个非常常用命令,它主要用于切换分支或恢复文件。 切换分支是git checkout命令的最常见用法之一。我们可以使用git checkout <branch-name>命令来切换到指定的分支。例如,我要切换到名为“dev”的分支,只需执行git checkout dev命令即可。 除了切换分支,git checkout命令还可以用于创建新分支。通过git checkout -b <branch-name>命令,我们可以同时创建并切换到一个新的分支。例如,我要创建一个名为“feature”的新分支,只需执行git checkout -b feature命令即可。 此外,git checkout命令还可以用于恢复文件。如果我们在工作区对某个文件进行了修改,但后来发现修改有误,可以通过git checkout <file-name>命令来恢复文件到最近一次的提交状态。例如,我要恢复“index.html”文件的修改,只需执行git checkout index.html命令即可。 需要注意的是,当我们使用git checkout命令切换分支或恢复文件时,Git会将当前分支或文件内容替换为切换到的分支或恢复的文件内容。因此,在执行这些操作之前,最好先保存一份当前分支或文件的备份。 综上所述,git checkout命令Git中一个非常重要的命令,它可以用于切换分支、创建新分支和恢复文件等操作。熟练掌握git checkout命令使用方法,对于Git版本控制的使用和工作流程起到关键作用。 ### 回答2: Git checkout命令Git版本控制系统中的一个常用命令,可以用来切换分支、创建分支和恢复文件。下面对Git checkout命令进行详解。 1. 切换分支:使用git checkout命令可以快速在不同分支之间切换。例如,使用命令git checkout branch_name可以切换到指定的分支,将当前工作目录切换到该分支上。 2. 创建分支:可以使用git checkout命令来创建分支。例如,使用命令git checkout -b new_branch_name可以创建一个新的分支,并切换到该分支上。这个命令相当于先使用git branch命令创建新分支,再使用git checkout命令切换到新分支。 3. 恢复文件Git checkout命令还可以用于恢复文件。如果文件在工作目录中的更改还没有提交到版本库,那么可以使用git checkout命令文件恢复到最近一次提交的状态。例如,使用命令git checkout -- file_name可以将指定的文件恢复到最近一次提交的状态。 此外,git checkout命令还可以用于切换到特定的提交或标签。例如,使用命令git checkout commit_id可以将工作目录切换到指定的提交使用命令git checkout tag_name可以将工作目录切换到指定的标签。 需要注意的是,git checkout命令在切换分支或恢复文件时,会将当前工作目录的更改丢弃。因此,在进行操作前应该确保已经保存或提交了当前工作目录的更改。 总之,git checkout命令Git版本控制系统中一个功能强大且常用命令,可以帮助开发者在不同分支之间切换、创建分支和恢复文件使用git checkout命令可以轻松管理和控制项目的版本。 ### 回答3: git checkout命令Git版本控制系统中的一个命令,用于切换分支、拉取远程分支、还原文件等操作。 1. 切换分支:使用git checkout命令可以在不同的分支之间进行切换。在命令行中输入git checkout <branch_name>,即可切换到指定的分支。 2. 创建分支并切换:git checkout命令也可以用于创建分支并立即切换到该分支。输入git checkout -b <branch_name>,即可创建一个名为<branch_name>的分支,并立即切换到该分支。 3. 拉取远程分支:使用git checkout命令可以拉取远程仓库的分支并在本地创建对应的分支。输入git checkout -b <branch_name> origin/<branch_name>,即可从远程仓库中拉取<branch_name>分支并在本地创建对应的分支。 4. 还原文件git checkout命令还可以用于还原文件的修改。输入git checkout <file_name>,即可将<file_name>文件恢复到最近一次提交的版本。 需要注意的是,使用git checkout命令会改变当前工作目录和文件的状态,应谨慎操作。如果有未提交的修改或者当前工作目录有冲突文件,切换分支可能会导致这些修改的丢失或冲突的产生。在切换分支之前,应先提交或保存当前的修改。 总而言之,git checkout命令Git版本控制系统中一个重要的命令,可以实现分支切换、创建与拉取分支以及文件还原等功能。使用命令时应谨慎操作,确保没有未提交的修改或冲突文件,以免导致数据丢失或冲突。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值