在廖雪峰网站学习git的笔记记录
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
配置git。你git的名字。你git的邮箱。
ssh-keygen -t rsa -C "我的SSH密钥"
生成一对秘钥
git init
创建创库
git add <file>
示例:git add readme.md 将readme.md这个文件添加到暂存区中。
git commit -m "说明"
将刚才所有加入到暂存区的文件提交到仓库中。并加上说明
git log
查看版本的提交记录
git log --pretty=oneline
可以不用显示那么多东西git reset --hard HEAD^
回到上一个版本。
HEAD^^
表示上上一个版本。一个道理。加多少个^就是多少个版本的意思。也可以使用HEAD~100
表示上100个版本
也可以是使用git reset --hard <commit id>
这里的commit id就是在git log
里面查到的。git reflog
查看你的每一条命令的id是多少。因为,当你后悔你的回退的时候。你可用这个命令看看你上一次命令的id是多少。然后再回到你的那个id版本去
git reset --hard <id>
git status
查看版本库的状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 在master分支上
# On branch master
# 没有提交的修改
# Changes not staged for commit:
# 可以通过这个命令更新你的文件到版本库
# (use "git add <file>..." to update what will be committed)
# 也可以回到上一个版本
# (use "git checkout -- <file>..." to discard changes in working directory)
# 有改动的文件
# modified: readme.txt
# 从来没被跟踪的文件。新建的而文件
# Untracked files:
# 通过git add 添加这些文件
# (use "git add <file>..." to include in what will be committed)
# LICENSE;
git checkout -- <文件>
废弃工作区的修改
git rm <文件>
当你删除文件的时候。你删了但是版本库里面一直有你的文件。你真的确定要删了。就是用这个命令 删除之后使用
git commit
提交说明git remote add origin git@gitee.com:Z_Chen/My_Coderepository.git
给本地仓库添加一个远程的仓库。你的修改就可以提交到远程仓库去了。
git push -u origin master
推送本地的版本到远程仓库里面去
-u
是推送了。顺便帮我更新一下。git clone git@gitee.com:Z_Chen/My_Coderepository.git
克隆远程仓库到本地来。
git checkout -b dev
创建dev分支并切换到dev分支上面去
-
git branch
查看废纸情况 -
git checkout master
切换分支 -
git merge dev
将dev分支合并上来。一本都需要结局冲突 git branch -d dev
将dev分支删除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 合并分支的时候
# On branch master
# 你当前分支比远程的分支提前了两个提交
# Your branch is ahead of 'origin/master' by 2 commits.
#
# 没有合并的文件路径
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# 下面是需要合并的而文件
# both modified: readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
git log --graph --pretty=oneline --abbrev-commit
这样可以看到合并的情况
1
2
3
4
5
6
7
* 59bc1cb conflict fixed
|\
| * 75a857c AND simple
* | 400b400 & simple
|/
* fec145a branch test
...
git merge --no-ff -m "合并dev分支" dev
不使用快速合并模式。把dev分支合并上来。在当前分支只是多了一个提交而已。不会把dev分支的提交全部拿过来。
git stash
可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
这个时候你就可以去修改其他分支的bug了。
当你修改完成回来的时候。你有两种方式恢复你工作区刚才的状态git stash list
查看一下刚才的储存列表一是用
git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;示例: git stash apply stash@{0}
二是直接使用git stash pop
恢复的同时。也会把这个删除掉。git branch -D <name>
强制删除。分支。因为这个分支还没有合并。所以不给你删除。你就需要强制删除
git remote
查看远程分支。
git remote -v
.查看详情的分支。git push origin master
推送本地方式到远程去。一般第一次这么使用。后面直接
git push
;git branch --set-upstream dev origin/dev
设置本地分支与远程分支的连接。pull的时候拉不下来。就用这个方法先。
pull之后通常需要自己手动合并分支git tag <name>
打标签。这样是在最新一次提交上面打标签。例:
git tag v0.9
标签是按字母排序的。不是时间排序git tag v0.9 6224937
使用
git log --pretty=oneline --abbrev-commit
看以前的提交。找到id ·6224937·就是id 。可以给这个提交打个标签git tag -a v0.1 -m "version 0.1 released" 3628164
解释: 给3628164打标签。标签名是v0.1。并加上说明version 0.1 released
git show <tagname>
查看这个标签信息
-
git tag -d v0.1
删除标签 -
git push origin <tagname>
推送标签到远程 git push origin --tags
可以推送全部未推送过的本地标签;git tag -d <tagname>
可以删除一个本地标签;git push origin :refs/tags/<tagname>
可以删除一个远程标签。 例子:git push origin :refs/tags/v0.9