Git 基本原理与常用命令

1、设置与帮助

1. git help <command>          # 显示指定命令的help  
2. git config --global user.name "your name"  
3. git config --global user.email "your email"  

2、修改与提交

1. git status                   # 查看工作区状态  
2. git add <file>               # 将指定文件修改提交到本地暂存区  
3. git add .                    # 将所有修改过的文件提都交暂存区,不包括删除,"."即表示正则匹配所有字符  
4. git add --all                # 将所有工作区修改提交到暂存区,包括 delete 掉的文件  
5. git add -A                   # 同上  
6. git commit -m"comments"      # 将暂存区的内容提交到本地库,并加上备注  
7. git commit <file>            # 提交暂存区指定文件  
8. git commit .                 # 提交暂存区所有文件  
9. git commit -a                # 将git add, git rm和git commit等操作都合并在一起做,不包括新建文件  
10. git commit -am "comments"    # 同上+添加备注  

3、撤销与恢复

1. git checkout  -- <file>     # 抛弃工作区指定文件的修改  
2. git checkoout .             # 抛弃工作区所有的修改  
3. git reset <file>            # 将指定文件从暂存区恢复到工作区  
4. git reset -- .              # 将所有文件从暂存区恢复到工作区  
5. git reset --hard            # 恢复最近一次提交过的状态,工作区所有修改被放弃  

4、查看提交

1. git show            # 显示某次提交的内容  
2. git show $id  
3. git log  
4. git log <file>      # 查看该文件每次提交记录  
5. git log -p <file>   # 查看每次详细修改内容的diff  
6. git log -p -2       # 查看最近两次详细修改内容的diff  
7. git log --stat      # 查看提交统计信息  

5、差异对比

1. git diff <file>                     # 比较当前文件和暂存区文件差异  
2. git diff <$id1> <$id2>              # 比较两次提交之间的差异  
3. git diff <branch1>..<branch2>       # 在两个分支之间比较  
4. git diff --staged                   # 比较暂存区和版本库差异  
5. git diff --stat                     # 仅仅比较统计信息  

6、关于版本

1. git tag                              #查看版本  
2. git tag [name]                       #创建版本  
3. git tag -d [name]                    #删除版本  
4. git tag -r                           #查看远程版本  
5. git push origin [name]               #创建远程版本(本地版本push到远程)  

7、关于分支

1. git branch <new_branch>             # 创建新的分支  
2. git checkout <branch>               # 切换到某个分支  
3. git checkout -b <new_branch>        # 创建新的分支,并且切换过去  
4. git branch -v                       # 查看各个分支最后提交信息  
5. git branch -r                       # 查看远程分支  
6. git branch --merged                 # 查看已经被合并到当前分支的分支  
7. git branch --no-merged              # 查看尚未被合并到当前分支分支  
8. git checkout $id                    # 把某历史提交checkout出来,无分支信息,切换到其他分支会自动删除  
9. git checkout $id -b <new_branch>    # 把某历史提交checkout出来,创建成一个分支  
10. git branch -d <branch>              # 删除某个分支  
11. git branch -D <branch>              # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)  

8、关于远程仓库

1. git remote add origin <remote>       # 添加远程库  
2. git remote -v                        # 查看远程服务器地址和仓库名称  
3. git remote show origin               # 查看远程服务器仓库状态  
4. git remote rm <repository>           # 删除远程仓库  
5. git push -u origin master            # 客户端首次提交  
6. git push -u origin develop           # 首次将本地develop分支提交到远程develop分支,并且track  

9、跟踪远程库和本地库

1. git branch --set-upstream master origin/master  
2. git branch --set-upstream develop origin/develop  

10、本地支持多个Git服务

cd /Users/chenyuan/.ssh  
lrwxr-xr-x  1 chenyuan  staff    42B May 23  2018 config -> /Users/chenyuan/Dropbox/Mackup/.ssh/config # 这里配置多个git对应关系

➜  .ssh  cat config

Host git.coding.net # host  
HostName git.coding.net  
Port 22  
User chengcheng222e  
IdentityFile ~/.ssh/chengcheng222e_coding # 这里是coding.net的私钥路径

Host github.com # host  
HostName github.com  
Port 22  
User chenyuan  
IdentityFile ~/.ssh/github_rsa # 这里是github.com的私钥路径  

11、推荐一个特别好玩的Git游戏~ Githug

Githug 安装和使用方法,一共有55关。