git的常用方法与基本命令

配置

设置全局用户名和邮箱账号

1
2
3
git config –global user.name "username"

git config –global user.email "email"

生成并配置ssh-key

1
ssh-keygen -t rsa -C "your_email@example.com"

生成的 ssh-key 一般位于C盘用户文件夹下 .ssh文件夹中,若未找到,可能是此文件夹被隐藏,在文件管理器上选择查看选项,勾选隐藏的项目即可显示。

将id_rsa.pub中的内容添加至github或其它代码托管平台的ssh-key配置中。

添加至github后使用以下命令测试是否添加成功。

1
2
3
4
5
6
7
ssh -T git@github.com

// success
Hi ..., You've successfully authenticated....

// error
Permission denied ...

开始使用

克隆一个已有的仓库到本地

现在我们可以使用 ssh 的项目地址克隆代码仓库了

1
git clone git@github.com:vuejs/vue.git

如果你希望在某个开源项目上贡献代码,由于没有写入的权限,需要使用fork + pull request的形式贡献代码或者向作者请求写入权限,将项目fork到自己的代码库中,然后再clone到本地。

在团队协作的项目中,我们可能需要拉取指定的分支工作,可以使用如下命令克隆指定分支的代码

1
git clone -b branchName git@github.com:vuejs/vue.git  // 克隆指定分支的代码

新建和切换分支

新建一个git项目的时候默认的分支是master, 多数情况下我们不会在主分支下进行开发,需要新建一个分支,切换到某个分支工作,确定代码没有问题后再提交到主分支。

1
2
3
git branch dev  // 新建一个 dev 分支
git checkout dev // 切换到 dev 分支
git checkout -b dev // 新建并切换到 dev 分支

暂存代码

有时我们在自己的分支上工作,代码还不能提交,却需要解决一个问题,可以储存代码

1
git stash

可以进行多次储存,每次储存都会生成一个唯一名称,恢复代码时可以指定名称恢复,如果未指明,默认使用最近的储存并尝试应用它

1
2
3
git stash apply <stash@{0}>

git stash pop (应用并从存储的堆栈中移出)

提交代码

查看文件状态

1
git status

提交到暂存区

1
2
3
git add test.js  // 提交单个文件
git add -u(--update) // 只提交被修改的文件,不包含新文件
git add . / git add -A(--all) // 提交所有文件(git v2)

提交更新

1
git commit -m "提交说明"

推送到远程仓库

如果是第一次提交代码,会默认在远程分支生成一个与当前分支同名的分支

1
2
3
4
5
6
7
8
//建立本地分支与远程某分支的关联
git branch --set-upstream-to origin/branchName locaBranchName

// 将本地dev分支推送到远程的dev分支,并将本地分支与远程分支关联
git push -u origin/dev(远程) dev(本地)

相当于执行了
git push origin dev + git branch --set-upstream-to=origin/dev dev

关联后可使用 git push 直接推送代码

撤销提交

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 撤销工作区的修改
git checkout -- <file>

// 撤销 git add 后并没有commit的修改(暂存区)
git reset HEAD <file>

// 撤销已经 commit 但未 push 的提交
git log //查看提交历史
git reset --hard commit_id
git reset commit_id

// 撤销已经 push 到远程仓库的提交
1.首先在本地回退到上一个版本
git reset commit_id
git push --force

git reset –hard 参数表示将本地代码也回退为指定commit 的代码

git reset –soft 或 未使用参数,只是改变了 HEAD 的指向,本地代码并不会发生变化

拉取远程分支的代码

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

合并分支

1
git merge anotherBranch  // 将另一个分支合并到当前分支

取消合并

1
git reset --hard HEAD

如果合并了分支后进行了其它的操作

1
git revert commit_id

解决冲突

git add 能用于合并时把有冲突的文件标记为已解决状态

Copyright © 2018 - 2019 诗之花绪 All Rights Reserved.

UV : | PV :