Git-基础配置与常用命令

专栏原创出处:github-源笔记文件 ,欢迎 Star,转载请附上原文出处链接和本声明。

使用前的配置

检查你的配置

git config --list --show-origin
# 查看所有的配置以及它们所在的文件

git config --list
# 所有 Git 当时能找到的配置

全局配置
配置文件在git config --list --show-origin 命令中可查看

git config --global user.name "[name]"
# 对你的 commit 操作设置关联的用户名

git config --global user.email "[email address]"
# 对你的 commit 操作设置关联的邮箱地址

git config --global color.ui auto
# 启用有帮助的彩色命令行输出。

本地工程配置
配置文件在当前工程目录/.git/config 文件中

git config --local user.name xxx
git config --local user.email xxx@xxx.com

创建仓库

当着手于一个新的仓库时,你只需创建一次。要么在本地创建,然后推送到 GitHub;要么通过 clone 一个现有仓库。

git init
# 将现有目录转换为一个 Git 仓库

git clone [url]
# Clone(下载)一个已存在于 GitHub 上的仓库,包括所有的文件、分支和提交 (commits)

进行更改

浏览并检查项目文件的发展。

git add [file]
# 将文件进行快照处理内容写入缓存区,用于版本控制

git commit -m"[descriptive message]"
# 将缓存区内容添加到仓库中,永久地记录在版本历史中

git rm -rf [file]
# 从工作区和索引中删除文件

检查历史和状态

git log
# 列出当前分支的版本历史

git log --graph --decorate --oneline
# 用以展示经过修饰的提交历史

git log --grep apples --oneline
# 如果只想要看包含关键字“apple”的提交

git log HEAD~5..HEAD^ --oneline
# 查看历史提交记录中两个点之间的提交历史

git log branch_name..master --oneline
# 对于分支可以使用该命令

git log --follow [file]
# 列出文件的版本历史,包括重命名

git blame path/to/file
# 了解谁对一个文件做了哪些改动

git diff [first-branch]...[second-branch]
git diff HEAD HEAD~2
# 对比当前 HEAD 和前两个提交

git show [commit]
# 输出指定 commit 的元数据和内容变化

git status -s
# 显示工作区状态

重做提交

Erase mistakes and craft replacement history

git commit --amend
# 删除前一次提交,并创建一个新的提交记录以替代之前的提交

git reset [commit]
# 撤销所有 [commit] 后的的提交,在本地保存更改

git reset --hard [commit]
# 放弃所有历史,改回指定提交

git rebase -i origin/master
# 交互式变基 (rebase)。它可以用来编辑提交信息,或者将多个提交压缩成一个提交

git revert COMMIT_ID
# 创建一个新的提交,让当前项目状态恢复到指定提交之前

小心!更改历史可能带来不良后果。如果你需要更改 GitHub(远端)已有的提交,请谨慎操作。如果你需要帮助,可访问 github.community 或联系支持 (support)。

分支

分支是使用 Git 工作的一个重要部分。你做的任何提交都会发生在当前“checked out”到的分支上。使用 git status 查看那是哪个分支。

git branch
# 列出当前项目分支

git branch [branch-name]
# 创建一个新分支
# 说明:如果报错「fatal: 不是一个有效的对象名:'master'。」说明初始化仓库后还没有任何提交记录。

git checkout [branch-name]
# 切换到指定分支并更新工作目录 (working directory)

git merge [branch]
# 将指定分支的历史合并到当前分支。这通常在拉取请求 (PR) 中完成,但也是一个重要的 Git 操作。

git branch -d [branch-name]
# 删除指定分支

同步更改

将你本地仓库与 GitHub.com 上的远端仓库同步

git fetch
# 下载远端跟踪分支的所有历史

git merge
# 将远端跟踪分支合并到当前本地分支

git push
# 将所有本地分支提交上传到 GitHub

git pull
# 使用来自 GitHub 的对应远端分支的所有新提交更新你当前的本地工作分支。git pull 是 git fetch 和 git merge 的结合。

git cherry-pick COMMIT_ID
# 假设我们和同事在各自单独的分支上进行开发,同事有一个重要的提交我们也想应用到自己的分支上来,但是不需要对方分支的其他提交

多 SSH-Key 生成及代理配置

生成一个新的 SSH Key

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 执行命令生成 ssh-key,需要指定相应的邮箱

> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [如果不更改文件名直接回车 ]
# 推荐不使用默认文件名 id_rsa ,按实际场景重新命名文件名称,比如:/Users/you/.ssh/id_rsa_github_my

> Enter passphrase (empty for no passphrase): [输入密码,回车 ]
> Enter same passphrase again: [再次输入密码,回车 ]

$ ll /Users/you/.ssh
# 可以看到刚刚生成的 ssh-key id_rsa_github_my 文件
# 复制对应 id_rsa_github_my.pub 内容添加至 WEB 端配置 SSH 内容地方即可。

将 SSH Key 添加到不同的代理

$ vim /Users/you/.ssh/config

# 配置文件参数
# Host : Host 可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和 ssh 文件(可以直接填写 ip 地址)
# HostName : 要登录主机的主机名(建议与 Host 一致)
# User : 登录名(如 gitlab 的 username)
# IdentityFile : 指明上面 User 对应的 identityFile 路径
# Port: 端口号(如果不是默认 22 号端口则需要指定)

Host github.com
HostName github.com
Preferredauthentications publickey
IdentityFile ~/.ssh/id_rsa_github_my
Port 22

Host dev-git.gaolvzongheng.com
HostName dev-git.gaolvzongheng.com
Preferredauthentications publickey
IdentityFile ~/.ssh/id_rsa_github_gaolvgo
Port 22

Host 119.3.177.8
HostName 119.3.177.8
Preferredauthentications publickey
IdentityFile ~/.ssh/id_rsa_github_gaolvgo
Port 22

测试配置是否成功

$ .ssh ssh -T git@github.com
Enter passphrase for key '/Users/liwei/.ssh/id_rsa_github_my':
Hi GourdErwa! You've successfully authenticated, but GitHub does not provide shell access.

术语表

  • HEAD:代表你当前的工作目录。使用 git checkout 可移动 HEAD 指针到不同的分支、标记 (tags) 或提交

  • .gitignore 文件:
    有时一些文件最好不要用 Git 跟踪。这通常在名为 .gitignore 的特殊文件中完成。你可以在 github.com/github/gitignore 找到有用的 .gitignore 文件模板。

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值