git学习笔记

Posted by Chen Blog on June 29, 2018

在廖雪峰网站学习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