常用 git 命令以及处理技巧

Posted FungLeo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用 git 命令以及处理技巧相关的知识,希望对你有一定的参考价值。

常用 git 命令以及处理技巧

基础常用命令

# 克隆
git clone git@github.com:fengcms/fengcms.git

# 拉
git pull

# 添加某一个文件
git add "src/xxx.js"

# 添加所有文件,严禁使用 `git add .` 这样的命令!这完全是不同的含义!
git add -A

# 暂存——通过 vim 编辑器
git commit -a

# 暂存——通过命令行
git commit -m "what i've done"

# 暂存——通过命令行(有文件变化时)
git commit -am "what i've done"

# 推
git push

# 重置未提交文件修改
git checkout src/xxx.js

# 重置未提交文件夹
git checkout src/xxx/

# 查看所有分支
git branch -a

# 切换分支
git checkout feature_1_3_0

基础状态查看类命令

# 查看当前修改
git status

# 查看当前修改详情
git diff

# 查看最近几次的提交,可以取得 commit 哈希值
git log -2

# 查看某次提交具体干了啥
# 哈希值通过上个命令获取,不用复制全部,复制最前面十几位就可以了。
git show [commit]

非常用,但必须掌握的命令

# 以当前所在分支代码为基础,创建一个新分支
git checkout -b feature_1_3_1

# 将当前分支推送到远程
git push --set-upstream origin feature_1_3_1

# 删除本地分支
git branch -d feature_1_3_0 

# 强制删除本地分支
git branch -D feature_1_3_0 

# 删除远程分支
git push origin --delete feature_1_3_0

# 更新远程分支信息
# 常用语远程已经删除分支,但本地依然缓存了远程分支的情况
git fetch origin --prune

# 合并某分支到当前分支
git merge feature_1_3_0

# 重置到最近一次提交的代码
# 不会删除你新添加的文件
git reset --hard

# 重置到某次提交的代码
# 可以从新往旧恢复,可以从旧恢复到新
git reset [commit]

git tag 常用命令

# 查看标签,可加上参数-l(列表形式列出) -n(附加说明)
git tag [-l -n]
# 查看符合检索条件的标签 
git tag -l 1.*.* 
# 查看对应标签状态 
git checkout 1.0.0 
# 创建标签(本地)
git tag 1.0.0-light 
# 创建带备注标签(推荐) 
git tag -a 1.0.0 -m "这是备注信息" 
# 针对特定commit版本SHA创建标签 
git tag -a 1.0.0 0c3b62d -m "这是备注信息" 
# 删除标签(本地) 
git tag -d 1.0.0 
# 将本地所有标签发布到远程仓库
git push origin --tags 
# 指定版本发送 
git push origin 1.0.0 
# 删除远程仓库对应标签(Git版本 > V1.7.0)
git push origin --delete 1.0.0 
# 旧版本Git 
git push origin :refs/tags/1.0.0
# 获取远程标签
git fetch origin tag "标签名称"

git 命令很多,也不容易记忆,善用 ctrl + r 快捷键,可以在命令行中进行历史命令搜索。因此,只要记住关键词就可以了。经过测试,windows 下的 git-bash 命令行工具也是支持这种搜索的。

其他 git 使用技巧

其他一些常用技巧

无密码操作

我们可以通过设置 ssh 秘钥来进行无密码操作 git 仓库。但在 windows 上 ssh 秘钥需要配置并长期开启一个软件(IDE 另说),因此,我们可以通过另一个方式来实现无密码操作。

在需要操作的项目文件夹下,找到 ** .git/config ** 文件,大概内容如下:

[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[remote "origin"]
  url = http://192.168.1.66/Front-end/waybill-fe.git
	fetch = +refs/heads/*:refs/remotes/origin/*

我们找到其中的 url 参数,调整为如下的格式,就可以免输密码了。

  url = http://__USERNAME__:__PASSWORD__@192.168.1.66/Front-end/waybill-fe.git

注意,这样做会比较容易泄露密码,请自行确定密码安全等级。此方法常用于在windows系统上,操作别人的电脑时别人使用了ssh但你又不知道如何开启他的配置,但此时又必须提交代码的情况下,临时切换为自己的用户名密码的方法。当然,方法给了,怎么用是自己考虑的事情。

调整默认编辑器为vim

在一些 linux 系统中,默认的文本编辑器是 nano。这样我们在 git commit -a 命令提交代码的时候,就很不方便(或者认为很方便?),因此我们想要重置为 vim 编辑器,命令如下:

git config --global core.editor vim

或者,直接编辑 ** ~/.gitconfig ** 文件,添加 [core] 节点信息如下,比如我的:

[user]
  email = web@fengcms.com
  name = fungleo
[core]
  editor = vim

小结

命令行操作可能没有图形界面操作方便,但是命令行操作是高度统一的,不会因为对方使用的操作系统,GUI软件亦或是其他因素发生变化。掌握命令行操作后,可以跨系统跨平台的操作和解决问题。因此希望大家能够努力掌握一下,亦或是收藏这些命令,在需要的时候可以有一本《肘后方》。

以上是关于常用 git 命令以及处理技巧的主要内容,如果未能解决你的问题,请参考以下文章

Git之常用的高效处理技巧

Git的安装以及常用的命令总结

git的使用以及常用命令场景

git使用小技巧

Git 使用技巧大全

Git常用命令以及常见的解决冲突方式