Git 使用手册

0. 基本配置

设置用户名:
git config --global user.name "用户名"
设置邮箱:
git config --global user.email "邮箱地址"
设置push方式:
git config --global push.default simple (只推送当前分支。matching是推送所有与远程分支对应的本地分支)
设置文本编辑器:
git config --global core.editor
查看Git配置信息:
git config --list

1. 创建本地仓库

在要建立仓库的目录下,运行:
git init

2. 文件操作

工作区:本地目录
暂存区:存放未提交文件
仓库:存放提交文件
一般先将文件添加入暂存区,然后将暂存区的文件提交至仓库。

添加文件到暂存区:
git add 文件名
git add . 将所有改动都添加

提交文件到仓库:

git commit 使用文本编辑器编辑注释
git commit -m “注释” 直接加入注释
git commit -a 略过暂存区直接提交文件(不能用于新建的文件)

将暂存区清空:

git reset

从暂存区删除文件:

git reset Head 文件名

修改最后一次提交:

git commit --amend

查看文件变动,并与远程仓库比较:

git status 未添加到暂存区的变动显示红色,添加到暂存区的变动显示绿色

查看暂存区文件变动细节:

git diff 文件名

撤销修改:

可以使用版本回退,返回到上一个已提交版本
使用git checkout -- 文件名
    1. 工作区文件未添加到暂存区做的修改。
	撤回到文件未修改时。
    2. 工作区文件添加到暂存区后做的修改。
	撤回到文件添加进暂存区时的状态。

删除文件:

本地删除后,commit -a, 或者先add再commit
使用git rm 文件名,然后commit

恢复文件:

如果未add,可以用checkout。
如果已经add,可以reset再checkout。
如果已经commit,可以撤回到上一个版本,

更名或移动:

git mv file_from file_to

仓库不保留该文件:

git rm --cached 文件名

给版本打标签(GitHub生成release):

git tag -a v1.0 -m "Version 1.0"
git tag -a v1.0 -m "Version 1.0" 版本号

显示版本信息:

git show v1.0

查看标签:

git tag

暂停/恢复工作:

git stash 暂停当前工作,清空暂存区
git stash list 
git stash pop 恢复之前工作

3. 版本回退

查看历史版本:

git log
git log --pretty=oneline 单行显示
退回到上一版本:

git reset --hard HEAD^
git reset --hard HEAD^^ 退回到上上版本

退回到指定版本:

git reset --hard 版本号/标签号

查看版本变更记录:

git reflog

查看各引用版本:

git show-ref
refs/heads/master 是本地的master
refs/remotes/origin/HEAD 是远程的HEAD
refs/remotes/origin/master 是远程的master

4. 远程仓库

在GitHub账户的设置中添加SSH Keys,将public key的内容复制过来。
1. 已建好本地仓库,添加对应的远程仓库。
(1)在GitHub上创建一个新的仓库GitTutorial。
(2)添加一个名为origin的远程服务器端:

git remote add origin SSH路径 (如果使用https则每次都要输密码)

(3)关联本地仓库与远程仓库,并将本地仓库的内容推送到远程仓库:

git push -u origin master,以后用git push即可。

2. 已有远程仓库,建立本地仓库。

git clone SSH路径
git clone SSH路径 新目录名

显示远程仓库:

git remote -v

更新远程仓库:

git push
git push origin v1.0
git push --tags 将标签一同推送
git push -f 强制远程仓库与本地一致
git push --all 推送所有分支

删除标签号:

git -d v1.0

删除远程标签号:

git push origin :v1.0

根据远程仓库更新本地引用数据(显示远程仓库变动,分支情况,不合并):

git fetch

更新本地仓库与远程仓库一致:

git pull 将远程关联分支与本地分支合并
git pull origin dev 将远程dev分支与本地当前分支合并
git pull -p 删除本地的远程已经删除的分支

5. 分支

master主分支是stable的,而其他分支往往是用来开发新feature,消除debug的。分支内add并commit后的文件独立于其他分支。

在Git中,每个分支有一个指针(如master,dev,origin/master远程分支),还有一个HEAD指针指向当前的分支。fetch就是用来更新远程分支指针的。

参考链接:Git分支管理策略

当合并遇到冲突时,需要手工解决冲突文件的内容,可以使用git mergetool图形界面工具。

查看分支:

git branch
git branch -v 查看分支最后一次提交
git branch --merged 查看已经合并的分支
git branch --no-merged 查看未合并的分支

新建分支dev:

git branch dev

切换到dev分支:

git checkout dev

新建并切换到分支dev:

git checkout -b dev

将dev分支合并到当前分支:

git merge --no-ff dev

将dev分支衍合到当前分支(类似打补丁,让提交历史干净整洁):

git rebase master dev 将dev上的操作在master上重演

推送本地分支到远程分支:

git push origin dev

推送并关联远程分支:

git push --set-upstream origin dev

克隆远程分支到本地并切换:

git checkout -b dev origin/dev
git checkout --track origin/dev
先git fetch 然后git checkout dev

删除分支:

git branch -d dev

删除远程分支:

git push origin :dev


参考资料

参考书籍 

参考教程


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值