学习资料来自于 廖雪峰的官方网站
初始化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>
网友评论