赞
踩
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
添加文件到Git仓库,分两步:
要随时掌握工作区的状态,使用git status命令。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
合并分支: git merge
(合并)与 git rebase
(变基)
NOW
所示: git merge
工作流程则如下:git rebase
。
git reset --hard HEAD~
撤销回到 NOW
的状态。然后开始 git rebase
工作流如下示:git reset --hard ORIG_HEAD
git pull
与 git fetch
的区别
git pull
.执行fetch就可以取得远程数据库的最新历史记录。取得的提交会导入到没有名字的分支,这个分支可以从名为FETCH_HEAD的退出。
关联后,使用命令git push -u origin master第一次推送master分支的所有 内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
如果想要提交某一次指定的 commit 而不是本地最新的 commit, 可以使用如下命令:
$ git push <remote name> <commit hash>:<remote branch name>
# Example:
$ git push origin 2dc2b7e393e6b712ef103eaac81050b9693395a4:master
Fork
模式来协同开发时,常常会在自己的 Fork
分支上提交各种修改。但是有一个问题? 上游仓库,也就是源分支代码更新了,我们 Fork
的下游分支,怎么同步上游仓库的更新呢?第一步:查看所有远程库的远程地址 git remote -v 第二步:添加源分支 URL git remote add upstream [源项目 URL] 第三步:检查所有远程库的远程地址 git remote -v 第四步:从源分支获取最新的代码 git fetch upstream / git fetch upstream [特定分支] 第五步:切换到主分支 git checkout master 第六步:合并本地分支和源分支 git merge upstream/master 第七步:Push 到 Fork 分支 git push
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快
1、可以先使用 git log 找到该个文件提交的历史版本
2、然后使用 git show <git提交版本号> <文件名> 查看历史版本
git log
或者 git log --pretty=oneline
找出 commit_id 。之后,便可以使用命令git reset --hard commit_id
切换版本了git checkout -b commit_id
的方法,创建一个新的分支,并切换到新的分支git branch
可以查看有哪些分支,注意看 master 分支前的 * 字符:它表示当前所在的分支。也就是说,如果现在提交更新,master 分支将随着开发进度前移。若要查看各个分支最后一个提交对象的信息,运行 git branch -v
,然后可以用 git checkout
切换到对应的分支git tag -a <版本号> -m "<备注信息>"
推送所有标签
git push origin --tags
推送指定版本的标签
git push origin <版本号>
删除远程仓库的标签
同创建本地标签一样,删除了本地标签之后也要同时删除远程仓库的标签。
新版本Git (> v1.7.0)
git push origin --delete <版本号>
在GitHub上我们会去fork别人的一个项目,这就在自己的Github上生成了一个与原作者项目互不影响的副本,自己可以将自己Github上的这个项目再clone到本地进行修改,修改后再push,只有自己Github上的项目会发生改变,而原作者项目并不会受影响,避免了原作者项目被污染。但经过一段时间, 有可能作者原来的代码变化很大, 你想接着在他最新的代码上修改, 这时你需要合并原作者的最新代码过来, 让你的项目变成最新的。
1、先克隆项目到本地:
Git clone https://github.com/iakuf/mojo
cd mojo
2、添加原作者项目的 remote 地址, 然后将代码 fetch 过来
git remote add sri https://github.com/kraih/mojo
git fetch sri
‘sri’相当于一个别名
查看本地项目目录: git remote -v
3、合并
git checkout master
git merge sri/master
如果有冲突的话,需要丢掉本地分支:
git reset –hard sri/master
4、这时你的当前本地的项目变成和原作者的主项目一样了,可以把它提交到你的GitHub库
git commit -am ‘更新到原作者的主分支’
git push origin
git push -u origin master -f –强制提交
把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
用户名和邮箱地址的作用
查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
修改用户名和邮箱地址:
$ git config --global user.name "username"
$ git config --global user.email "email"
其中,加上 --global 是全局设置的意思,不加是局部设置的意思。
The requested URL returned error:
403
可以清楚缓存后,在尝试。命令如下:
git config --local --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper
关于 credential 可以参见:
https://blog.csdn.net/u012163684/article/details/52433645
比如我们有 2 个分支:master, dev,现在想查看这两个 branch 的区别,有以下几种方式:
1.查看 dev 有,而 master 中没有的:
git log dev ^master
同理查看 master 中有,而 dev 中没有的内容:
git log master ^dev
这里写图片描述
2 查看 dev 中比 master 中多提交了哪些内容:
git log master..dev
注意,列出来的是两个点后边(此处即dev)多提交的内容。同理,想知道 master 比 dev 多提交了什么:
git log dev..master
3 不知道谁提交的多谁提交的少,单纯想知道有什么不一样:
git log dev…master
4.在上述情况下,再显示出每个提交是在哪个分支上:
git log --left-right dev…master
git commit --amend
: 该命令可以使将这一次的提交合并到上一次最后的提交 commit 里。git revert HEAD
: 通过修改 HEAD 的指向就可以实现撤销恢复。HEAD 表示工作区当前指针。git reset --hard HEAD~~
: 如果想删除当前分支最前面的两个提交, 可以使用该命令。如果撤销失败,可以使用 git reset --hard ORIG_HEAD
恢复到原来的状态。git cherry-pick 99daed2
: git cherry-pick 可以将任意分支上的指定的 hash commit (如 99daed2) 合并导入到当前操作(如 master)分支。rebase -i
:合并过去的几个提交成一个提交。如 git rebase -i HEAD~~
。这样两个提交就合并成一个提交了。可以用 log命令确认历史记录。若其中还要修改某些文件内容,则可以修改后使用 git commit --amend
合并至上一次提交后,在执行 git rebase --continue
.merge --squash
: 本地端的历史记录的状态如下图显示。把issue1分支的所有提交合并成一个提交,并导入到master分支。git checkout master
, git merge --squash issue1
. 若有冲突,解决后, add 冲突文件后,再 commit 即可。最全的Linux教程,Linux从入门到精通
======================
linux从入门到精通(第2版)
Linux系统移植
Linux驱动开发入门与实战
LINUX 系统移植 第2版
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。