GIThub使用总结

GIThub使用

配置信息

查看用户名和邮箱地址
git config user.name
git config user.email

修改用户名和邮箱地址:
git config --global user.name “username”
git config --global user.email “email”
初始化一个本地仓库
git init
检查配置信息
git config --list 命令来列出所有 Git 当时能找到的配置
使用帮助
git help config
git add -h 查看add的帮助信息

工作流

从远程仓库里拉取一条本地不存在的分支时:

git checkout -b 本地分支名 origin/远程分支名

这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来。例如远程仓库里有个分支dev2,我本地没有该分支,我要把dev2拉到我本地:若成功,将会在本地创建新分支dev2,并自动切到dev2上。如果出现提示:

fatal: Cannot update paths and switch to branch 'dev2' at the same time. Did you intend to checkout 'origin/dev2' which can not be resolved as commit?

表示拉取不成功。我们需要先执行

git fetch

然后再执行

git checkout -b 本地分支名 origin/远程分支名

提交前查看修改
git status
第一个是你的 工作目录,它持有实际文件;
第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。
提出更改(把它们添加到暂存区),使用如下命令:
git add
git add *
查看当前目录的所有修改
git diff
提交改动:
git commit -m “代码提交改动信息”
提交历史查看
git log --stat # 仅显示摘要选项
git log --pretty=oneline # 定制记录格式
git log --graph # 图像化分支和版本更新
添加远端仓库源链接
remote add origin 远端仓库链接
推送到远端仓库
git -u origin master
恢复之前版本代码
git reflog (查看之前执行的所有操作)
git reset --hard HEAD^( 回到上一版本)
HEAD为当版本指针 HEAD^表示上个版本 HEAD^^表示上上个版本 HEAD^100表示之前100的版本 或者填写版本号代替HEAD
在这里插入图片描述

图解三步奏

在这里插入图片描述

上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。
git add files 把当前文件放入暂存区域。
git commit 给暂存区域生成快照并提交。
git reset – files 用来撤销最后一次git add files
git reset 撤销所有暂存区域文件。
git checkout – files 把文件从暂存区域复制到工作目录,来丢弃本地修改
git reset -p, git checkout -p, or git add -p进入交互模式。也可以跳过暂存区域直接从仓库取出文件或者直接提交代码。
在这里插入图片描述

git commit -a 相当于运行 git add 把所有当前目录下的文件加入暂存区域再运行git commit.(一次到位)
git commit files 进行一次包含最后一次提交加上工作目录中文件快照的提交。并且文件被添加到暂存区域。
git checkout HEAD – files 回滚到复制最后一次提交

实践

首先,我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

然后,用git branch命令查看当前分支

$ git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号。然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:

create new branch dev..

然后提交:

$ git add readme.txt
$ git commit -m "create new branch...."
[dev 45ae9a9] create new branch....
 1 file changed, 1 insertion(+)

现在,dev分支的工作完成,我们就可以切换回master分支:

$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.

切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变:

现在,我们把dev分支的工作成果合并到master分支上:

$ git merge dev
Updating 90bc1f7..45ae9a9
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。

合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev
Deleted branch dev (was 45ae9a9).

删除后,查看branch,就只剩下master分支了:

$ git branch
* master

总结

Git鼓励大量使用分支:
查看分支:git branch
查看所有分支(包括远程):git branch -a
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
推送分支到远程:git push orgin

完整的一次git过程

git init — 初始化Git
git add . — 将项目所有文件都交给Git 管理
git commit -m “first commit” — 提交,并且写上备注
git remote add origin https://github.com/zjh123456789/5656.git ---- 关联远程仓库
git push -u origin master ---- 把Git 库推送到远端结束!!! 第二种就更简单了:假设还是刚刚在远端建立的新仓库: https://github.com/zjh123456789/5656.git 如果你是 clone 别人的仓库到本地, 那么 git 肯定会存在别人关联的 仓库,要先把这个关联仓库删除才行, 命令如下
git remote remove origin ---- 删除当前 Git 库关联的远程仓库地址 然后再把你自己的远程库和本地库进行关联,命令同上:
git remote add origin https://github.com/zjh123456789/5656.git — 关联自己的远程仓库地址 关联好了之后,把本地所有内容推送到远程库上:
git push -u origin master ---- 推送内容到远程仓库 注意: 当我们第一次推送 master 分支时,加上了 -u 参数, Git 不但会把本地的 master 分支内容推送到远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来。
注意:
git删除/撤销远已经push到程服务器上某次代码提交

场景:不小心把一次错误的代码push到远程服务器上的分支上,需要立即删除/撤销这次代码提交。
具体方法,git命令:
git reset --hard <commit_id>
git push origin HEAD --force

commit_id可以通过git命令:
git log
输出获取。
commit_id形如:126f206185f225879f2723ca421f4dee44ca8fe7

然后完整命令:

git reset --hard 126f206185f225879f2723ca421f4dee44ca8fe7
git push origin HEAD --force

合并某一个分支上的某一条修改

**第一种情况:只合并一个commitgit **

checkout develop-hbb
git cherry-pick 7c32be61

以上,7c32be61是develop上的一个fix bug的commit,上面就是将这个commit合并到develop-hbb上
第二种情况:合并连续的多个commit到指定的分支上

比如在develop分支上有7c32be61到54dfef55的连续的10个commit,54dfef55是后面的提交。先在要将这10个commit 合并到develop-hbb分支上
1)首先基于develop分支创建一个临时分支temp,并指明新分支的最后一个commit

git checkout -b temp 54dfef55 

2)将temp分支上的从7c32be61到最后一个commit,也就是54dfef55的commit合并到develop-hbb上

git rebase --onto develop-hbb 7c32be61^
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值