# learn git note

By [Yesan](https://paragraph.com/@yesan) · 2022-05-08

---

1.  git init 初始化
    
2.  git add 添加/修改文件,保存到Stage
    
    *   git commit -m 提交stage到分支仓库,message用引号
        
        *   git status 查看状态
            
        *   git diff 查看变化，diff是different缩写
            
        *   git log <--pretty=online> 查看日志
            
        *   git reset --hard commit\_id 版本回退,commit\_id 可以不写全，只写部份 回退上个版本：git reset --hard HEAD^
            
        *   git reflog 查看每一次操作记录,可找回之前最新的版本
            
        *   git checkout -- 新命令：git restore 撤销工作区的修改 a.修改后还没添加到暂存区,撤销后和版本库是一样的状态。 b.修改后已经添加到暂存区，撤销后回到添加到暂存区后的一样状态。
            
            *   git reset HEAD readme.txt 新命令： git restore --staged . 暂存区的修改撤销掉
                
                *   git rm 删除文件，还要commit一下，才会更新版本库
                    
                    *   git remote add origin [git@github.com](mailto:git@github.com):michaelliao/learngit.git 远程关联
                        
                    *   git push -u origin master 远程推送 由于远程库是空的，我们第一次推送master分支时，加上了-u参数，Git不但会把本地的master分支内容推送的远程新的master分支，还会把本地的master分支和远程的master分支关联起来，在以后的推送或者拉取时就可以简化命令。
                        
                    *   git clone [git@github.com](mailto:git@github.com):michaelliao/gitskills.git 远程克隆 假设我们从零开发，那么最好的方式是先创建远程库，然后，从远程库克隆。
                        
                    *   git branch 查看所有分支
                        
                    *   git branch dev 创建dev分支
                        
                    *   git checkout dev 切换dev分支
                        
                    *   git merge dev 先切换到master主分支，再执行合并分支
                        
                    *   git switch -c feature1 创建并切换新分支feature1
                        
                    *   git log --graph --pretty=oneline --abbrev-commit 查看分支合并情况

---

*Originally published on [Yesan](https://paragraph.com/@yesan/learn-git-note)*
