git 101

作者: andrew7 | 来源:发表于2016-10-08 23:04 被阅读0次

学习资料来自于 廖雪峰的官方网站

初始化git信息

git config --global user.name "Your name"
git config --global user.emal "email@example.com"


生成git目录

git init


灰常重要

我实在是看不下去了,一会儿暂存区一会儿版本库的,请先分清概念,经过我的实验,提> 交代码的更改一共分2个阶段。

1).从工作目录,提交到stage。
2).从stage提交到master。

从工作目录提交到stage,需要用add或者rm命令,只提交到stage,而没有提交到>master,是不会自动同步到master的。

从stage提交到master用commit命令。

退回也是要分两步,一个是从master退回到stage,然后再从stage退回到工作目录。

对于还没有提交到stage的,可以从stage用checkout命令退回,这一步会取stage中的文件状态,覆盖掉工作目录中文件的状态,跟master完全没关系。

对于已经到达stage的,想把state中的文件状态用master中的覆盖掉,就用reset命令,这>样就把stage中修改用master的状态覆盖掉了,完全跟工作目录没关系


文件加入git控制

-加入当个文件
git add README.md
-加入全部文件
git add .


git 文件提交

git commit -m 'comment'


查看更改的状态

git status


查看文件是否不一致

git diff README.md


相对于第一次提交到目前的内容的变化记录

git log


回滚commit到master的内容

git reset --hard head ^
git reset --hard head^^
git reset --hard head ~2

git reset --hard head 版本号名称


查看每一次我们对文件操作的操作

git reflog


从stage中取文件来替换现在工作区间的文件

git checkout -- README.md


从master中取文件来代替在stage中的文件

git reset HEAD README.md


将stage中的文件删除

git rm README.md
然后通过commit 将这个变更推送到本地的master


本地私钥和公钥生成指令

ssh-keygen -t rsa -b 4096 -C 'yourmail@mail.com'


将本地的git和远程的关联起来

git remote origin add git@github.com:andrewchen1/Python101.git


将本地的分支和远程的master分支关联,并且将

git push -u origin master
之后就可以通过
git push origin master 进行推送


复制远程仓库的内容

git clone git@github.com:andrewchen1/Python101.git
or
git clone https://github.com/andrewchen1/Python101.git


创建分支

git checkout -b dev
which equal to
git branch dev
git checkout dev
之后我们所有的更改都在dev 这个分支上面了


将支分支上的内容合并到主分支上

-将分支切换到主分支上
git checkout master
-合并分支
git merge dev


删除分支

git branch -d dev


BUG 分支

将内容暂存起来
-git stash
-git checkout master
-git checkout -b issue-101
-git add README.md
-git add commit -m 'fix the bug issue'
测试好了之后
-git checkout master
-git merge issue-101
-git branch -d issue-101
-git chekout dev
-git stash apply
or
-git stash pop
来恢复
其中可以通过
git stash list 查看stash的内容

强制删除分支

在分支有commit的情况下想要强制删除的话
git branch -D 'FEATURE101'

创建标签

git tag v1.0_or_somethinge_else
这时候给创建的标签是放在上次的commit上面的
git tag tag_name 6224937
6224937是历史某次commit 的id
还可以创建带有说明的标签
git tag -a v0.1 -m 'version 0.1 released' 3628164

checkout tag

git checkout tags/<tag_name> -b <branch_name>


$ git clone will give you the whole repository.

After the clone, you can list the tags with $ git tag -l and then checkout a specific tag:

$ git checkout tags/<tag_name>

Even better, checkout and create a branch (otherwise you will be on a branch named after the revision number of tag):

$ git checkout tags/<tag_name> -b <branch_name>


checkout git

相关文章

网友评论

      本文标题:git 101

      本文链接:https://www.haomeiwen.com/subject/afwuyttx.html