一些 git 使用经验介绍-华盟网

一些 git 使用经验介绍

华盟学院山东省第二期线下学习计划

经历过两个公司,都是使用 git 作为源码管理工具的。下面我以使用场景进行划分:

一些简单的git概念

拉取远程分支上的信息

git fetch

对应的如果想要添加一个新的远程 Git 仓库,可以:

git remote add REMOTE_GIT_URL.git

当前分支的引用指针,总是指向该分支的最后一次提交
也就是重置文件,通常是使用git checkout -b <SHA>,如果这里不加-b,那么会Detach

阅读约定

$开头的字样标识了命令需要在终端(terminal)中使用。 任何以.开头的文件都是隐藏文件,比如.gitignore文件,如果你在对应系统的文件管理器中没有发现,请先开启显示隐藏文件功能。

初始化 git

1. 生成 SSH Key(常用)

在终端输入命令来生成密钥

$ ssh-keygen -t rsa -C "YOUR_EMAIL"

默认会在用户目录下新建一个.ssh隐藏文件夹,里面以 pub 结尾的文件内容就是公钥,将内容复制到 github 或者是其他源代码管理服务器上即可。之后克隆的时候只要选择 SSH 验证方式就不再需要使用邮箱密码验证了。
如果需要生成多个密钥可以输入命令行

ssh-keygen -t rsa -f SAVE_LOCATION_AND_FILE_NAME -C "YOUR_EMAIL"

然后在.ssh目录下添加config文件,注册内容:

Host hostname_A   IdentityFile ~/.ssh/hostname_A_id_rsa   User username   Port port_id   Host hostname_B   IdentityFile ~/.ssh/hostname_B_id_rsa   User username

2. 设置全局信息

全局 git 信息,也就是一些 git 默认值,使用以下命令来修改用户名和邮箱地址:

  $ git config --global user.name 'YOUR_NAME'  $ git config --global user.email 'YOUR_EMAIL'

你可以使用$ git config --list来查看当前的全局设置,所有的全局信息都存储在~/.gitconfig文件中

在工程中使用 git

在已经存在的项目中初始化 git(常用)

在工程目录下执行命令

git init

关联远程仓库的方法

git remote add origin GIT_REMOTE_URL.git

默认创建 master 分支

克隆远程仓库(很常用)

git clone GIT_REMOTE_URL.git OPTIONAL_FOLDER_NAME

如果添加文件夹名称,会在当前目录下创建一个文件夹,再在这个文件夹里面创建代码仓库。

忽略一些不想要提交的文件(常用)

在提交之前,有一些文件可能并不打算提交到服务器上,比如 iOS 中的/Pods、Node 中的node_modules等,这时候只需要在工程目录下新建一个.gitignore文件。在文件内容中指定不想要提交的目录或者是文件。
在图形化操作中通常使用 ignore 命令,比如:

你可以在这里github/gitignore下载到一些语言对应的常用 Gitignore 文件,注意使用的时候需要将文件名重命名为.gitignore。否则是无效的。

对 git 进行操作

提交本地修改到服务器(最常用)

基本你99%会用到以下代码提交到 git 上

$ git add .$ git commit -m "YOUR_COMMIT_INFO"$ git push origin <branch>

创建一个分支,或者切换到指定分支

首先查看本地所有分支

$ git branch

如果需要查看本地和远程所有分支的话

$ git branch -a

切换分支

git checkout BRANCH_NAME

如果不想要这个分支了的话

git branch -d BRANCH_NAME

而比较常见的是需要你checkout 远程分支,然后在新分支上写代码,最后push 到远程仓库里面

提交一个 merge request(较常用)

通常在 push 代码到主仓库之后,如果有权限的话可以直接 push remote 来合并代码。但是如果没有权限或者需要在 github\gitlab进行 Merge Request的话。那么请在github\gitlab 上操作。

打 Tag

对于每个发布版本,都需要添加一个 tag,查看 tag的方法是:

git tag

创建 tag 的方法是:

git tag -a [vVERSION_NUMBER] -m [VERSON_DESC]

重置文件操作

对于单个文件,希望撤销修改或者是重置到某次提交,那么就使用到reset方法

git reset HEAD FILE_NAMEgit reset --hard COMMIT_ID

本地还没有提交到远程仓库,想要修改 commit 信息

git commit --amend -m "new commit message"

对已经提交的 commit 进行撤销操作(很常用)

如果想要保留 commit 的修改内容,只不过先放回 staging 里面:

git reset --soft HEAD~

如果完全不想要 commit ,而且也不想要内容了

git reset --hard HEAD~

暂存修改

可以让工作进度先保存起来,需要用到的时候在恢复。

git stash save "STASH_CONTENT"git stash listgit stash apply stash@{...}

对已经push 的提交进行修改

git push origin <branch>

删除分支

//本地git branch -D <your_branch>//远程git push origin --delete <your_branch>

合并多个 commit,让每个 commit 更有意义

可以合并多个 commit 为一个 commit,但是此时的 commit 的信息为最后一个 commit 的描述

git rebase -i HEAD~4

所以通常会修改 commit 描述

git commit --amend -m "YOUR_NEW_COMMIT_MSG"

合并产生冲突,但此时了解哪个版本是对的

git merge a_branch>CONFLICTgit status -s>UU conflict.txtgit checkout --theirs conflict.txt

好用的 Git 终端

www.idc126.com

Tower Sourcetree gitkraken 系统自带终端

参考资料

本文由 华盟网 作者:小龙 发表,其版权均为 华盟网 所有,文章内容系作者个人观点,不代表 华盟网 对观点赞同或支持。如需转载,请注明文章来源。

0

发表评论