Useful Commands of Git

Elegant ways to use Git

Useful Commands of Git

Elegant ways to use Git

本篇总结了 Git 使用过程中主要将用到的命令和其它一些问题的解决方法,包括:

  • Git 分支管理
  • 本地仓库-远程仓库的拉取/推送/关联
  • .gitignore 文件。
  • 用户邮箱配置
  • SSH Key 配置

分支

创建 Git 分支,可以在原来的版本链上衍生出一条新的、独立的版本链,在新链上进行开发,再合并到主链中,这是协同开发和版本控制的精髓。

增删分支

# 创建分支
git branch new_branch_name
# 切换分支
git checkout branch_name
# 创建分支,并切换到新分支
git checkout -b new_branch_name
# 合并分支
git merge branch_name
# 删除分支
git branch -d branch_name

查分支

# 检查分支版本
git log --oneline --decorate
# 查看分支分叉历史
git log --oneline --decorate --graph --all

从另一个分支同步特定文件

git checkout <另一个分支名> <特定文件名>

远程库推送、拉取

本节内容为如何关联本地库与远程库,将你的代码托管在网络上,作为备份或和合作者协同开发。

远程库查询、增加、删除

# 查询
git remote -v
# 增加
git remote add origin <你的项目地址>
# 删除
git remote rm origin

推送到远程库

git push <远程主机名> <本地分支名>:<远程分支名>

首次推送并关联分支

git push -u origin master

从远程库拉取

git pull = git fetch + git merge

git pull <远程主机名> <远程分支名>:<本地分支名>

如果报错:本地和远程库是独立构建的,那么添加如下参数即可:

git pull origin master --allow-unrelated-histories

.gitignore

在 .gitignore 文件中声明的文件名,将不会被 Git 追踪(也就不会对它们进行版本控制、推送到远程库等),除非在更新 .gitignore 之前它们已经被追踪。

.gitignore 只对未追踪的文件生效

解决方法

注意:该方法会将暂存区里面的文件也同时删除

在目标分支下,

git rm -r --cached <想重新忽略的文件名>
git add .
git commit -m "update gitignore"

设置 Git 用户名和邮箱

全局范围配置方法

git config --global user.name "github’s Name"
git config --global user.email "github@xx.com"
git config --list

只作用于当前项目的配置方法

git config user.name “gitlab’s Name”
git config user.email "gitlab@xx.com"
git config --list

也可以直接修改项目文件夹的 .git/config 文件,这个文件还可以配置 Git 的很多东西,包括关联的远程库地址、用户等。

SSH Key

SSH Key 是一个身份标识,用于让远程库(比如 GitHub)识别出你这台计算机的身份,从而不需要密码就可以安全提交。

第一步:生成 public key 和 private key

cd ~/.ssh
ls
# 此时会显示一些文件
mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*  
# 以上三步为备份和移除原来的SSH key设置
ssh-keygen -t rsa -C "邮件地址@youremail.com" #生成新的key文件,邮箱地址填你的Github地址
# Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):<回车就好> #如果是二次创建,需要输入新的文件名
# 接下来会让你输入密码

第二步:查看 SSH 公钥

cd ~/.ssh
ls # 会列出文件,里面包含公钥文件
vim id_rsa.pub # 用 vim 编辑器打开公钥文件
# 复制文件内容到 github 即可

第三步:测试 SSH

ssh -T git@github.com
# 之后会要你输入yes/no,输入yes就好

一台电脑多个 Git 账号,配置多个 SSH Key 的方法

第一步:创建 SSH KEY

同上

第二步:配置 config 文件

查看用户~/.ssh下是否存在 config文件,如不存在使用命令 touch config创建,然后配置config

# 配置github.com
Host github.com
    HostName github.com
    IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_github
    PreferredAuthentications publickey
    User username1

# 配置git.oschina.net
Host git.oschina.net
    HostName git.oschina.net
    IdentityFile C:\\Users\\popfisher\\.ssh\\id_rsa_oschina
    PreferredAuthentications publickey
    User username2

第三步:测试

ssh -T git@git.oschina.net

如果配置正确会提示 Hi your git account two in github ! You've successfully authenticated, but GitHub does not provide shell access.

使用方法:clone 项目到本地

原先操作是: git clone git@github.com:yourAccount/xxx.git

现改为:git clone git@git.oschina.net:yourAccount/xxx.git

Related