Git 基本原理与常用命令

Git 基本原理与常用命令

1、设置与帮助

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

2、修改与提交

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

4、查看提交

1
2
3
4
5
6
7
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
2
3
4
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
2
3
4
5
1. git tag                              #查看版本  
2. git tag [name] #创建版本
3. git tag -d [name] #删除版本
4. git tag -r #查看远程版本
5. git push origin [name] #创建远程版本(本地版本push到远程)

7、关于分支

1
2
3
4
5
6
7
8
9
10
11
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
2
3
4
5
6
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
2
1. git branch --set-upstream master origin/master  
2. git branch --set-upstream develop origin/develop

10、本地支持多个Git服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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关。

关卡列表
关卡名称 学习内容 Git 命令
第1关 init 初始化仓库 git init
第2关 config 设置用户名和电子邮箱地址 git config
第3关 add 把文件添加到暂存区 git add
第4关 commit 提交 git commit
第5关 clone 克隆远程仓库 git clone
第6关 clone_to_folder 克隆远程仓库,并指定本地目录名 git clone
第7关 ignore 配置不被 Git 管理的文件 vim .gitignore
第8关 include 配置不被 Git 管理的文件 vim .gitignore
第9关 status 查看仓库状态 git status
第10关 number_of_files_committed 查看仓库状态 git status
第11关 rm 删除文件 git rm
第12关 rm_cached 从暂存区中移除文件,系 git add 的逆操作 git rm –cached
第13关 stash 保存而不提交 git stash
第14关 rename 文件改名 git mv
第15关 restructure 整理目录结构
第16关 log 查询日志 git log
第17关 tag 打标签 git tag
第18关 push_tags 把标签推送到远程仓库 git push –tags
第19关 commit_amend 修改最后一次提交 git commit –amend
第20关 commit_in_future 指定提交的日期 git commit –date
第21关 reset 从暂存区中移除文件,系 git add 的逆操作 git reset
第22关 reset_soft 撤销提交,系 git commit 的逆操作 git reset –soft
第23关 checkout_file 撤销对一个文件的修改 git checkout
第24关 remote 查询远程仓库 git remote
第25关 remote_url 查询远程仓库的 URL git remote -v
第26关 pull 从远程仓库拉取更新 git pull
第27关 remote_add 添加远程仓库 git remote
第28关 push 把提交推送到远程仓库 git push
第29关 diff 查看文件被修改的细节 git diff
第30关 blame 查询每一行代码被谁编辑过 git blame
第31关 branch 创建分支 git branch
第32关 checkout 切换分支 git checkout
第33关 checkout_tag 切换到标签 git checkout
第34关 checkout_tag_over_branch 切换到标签 git checkout
第35关 branch_at 在指定的提交处创建分支 git branch
第36关 delete_branch 删除分支 git branch -d
第37关 push_branch 推送分支到远程仓库 git push
第38关 merge 合并分支 git merge
第39关 fetch 从远程仓库抓取数据 git fetch
第40关 rebase 变基合并 git rebase
第41关 repack 重新打包 git repack
第42关 cherry-pick 合并分支上指定的提交 git cherry-pick
第43关 grep 搜索文本 git grep
第44关 rename_commit 修改历史提交的说明 git rebase -i
第45关 squash 把多次提交合并成一次提交 git rebase -i
第46关 merge_squash 合并分支时把多次提交合并成一次提交 git merge –squash
第47关 reorder 调整提交顺序 git rebase -i
第48关 bisect 用二分法定位 bug git bisect
第49关 stage_lines 添加文件的部分行到暂存区 git add –edit
第50关 file_old_branch 查看 Git 上的操作历史 git reflog
第51关 revert 取消已推送到远程仓库的提交 git revert
第52关 restore 恢复被删除的提交 git reset –hard
第53关 conflict 解决冲突
第54关 submodule 把第三方库当作子模块 git submodule
第55关 contribute 捐献

把这个游戏全部通关,你的操作绝对又上N个台阶~

参考地址:

如果大家喜欢我的文章,可以关注个人订阅号。欢迎随时留言、交流。

简栈文化服务订阅号