咳咳,有如此完美的可视化界面不用,偏偏要用命令行,何必呢!命令行这东西,按需获取,当你遇到需要完成的操作无从下手时,可以过来看看,没必要全部记下来。
老司机专属链接:Git 常用命令列表
零基础:仓库初长成
Scene1: 我是项目的创建者,在git上已经创建了一个新的仓库,我要怎么推送本地代码到远端仓库?
1 2 3 4 5
| 1. git init
2. git remote add [rmt_name] [git_url]
3. git push [rmt_name] master
|
Scene2: 我是项目的参与者,git上已经有了代码仓库,我要怎么参与开发?
入门:贡献自己一份力
Scene1: 我对本地仓库进行了修改,我要怎么提交到远端仓库?
1 2 3 4 5 6 7 8 9
| 1. git status
2. git add .
3. git commit -m "本次提交的信息"
4. git pull [origin] [branch_name]
5. git push [origin] [branch_name]
|
Scene2: 我想撤销对某些文件的修改(还没有add)
1 2 3 4 5 6 7
| 1. git status
2. git checkout [file_name]
3. git clean -df
|
Scene3: 我想撤回add操作(已经add但是还没commit)
Scene4: 我想撤回commit操作(已经commit但是还没有进行push)
1 2 3
| 1. git log
2. git reset --soft [commit_id]
|
Scene5: 我进行了commit操作,但是我发现我的标签写错了,怎么办?
1 2 3
| 1. git commit --amend
2. git commit --amend --reset-author
|
Scene6: 我想回滚到之前的某一个版本
1 2 3 4 5 6 7 8
| 1. git log
2. git reset --hard [commit_id]
3. git push -f [rmt_name] [branch_name]
|
Scene7: 最不想看到的结果,pull或者merge的时候发生冲突了
1 2 3 4 5 6 7
| 1. 根据合并结果对所有的冲突进行手动处理
2. git add .
3. git commit -m "合并信息"
4. git push [rmt_name] [branch_name]
|
Scene8: 想查看某个文件具体的修改内容?
Scene9:我想查看所有的提交记录
1 2 3 4 5
| 1. git log // 查看所有的提交记录
2. git log [branch_name] // 查看某分支的提交记录
3. glog // 等价于 git log --oneline,简化日志,一次提交占一行,有利于全局观察
|
进阶:花里胡哨的一份力
Scene1: 我要新建一个分支
1 2 3 4 5
| 1. git branch [new_branch_name]
2. git checkout [new_branch_name]
|
Scene2: 我要查看现有的所有分支
Scene3: 分支开发完了,我要合并到主分支master上
1 2 3 4 5
| 1. git checkout master
2. git merge [branch_name]
3. git merge --patch [branch_name] [file_name]
|
Scene4: 分支开发完了,也就没有存在的必要了
1 2 3
| 1. git branch -d [branch_name]
2. git push rmt --delete [branch_name]
|
大师:优化提交记录 - rebase
- 超高能警报!!虽然rebase可以简化提交记录,如果你用的是
Source Tree
等可视化工具,那么点一下就可以了,如果是用的命令行,请在熟练使用过 rebase
命令的高手陪伴下使用该命令!!!否则!!!后果你承担不起!!!
普通的提交最大的问题,就是有太多的 commit
,当参与人数较多时,会出现大量的如merge这种无用的commit日志,而且在查看提交记录图时,会有很多从分支上合并到主分支的线条,看起来不美观。
1 2 3 4 5 6 7 8 9
|
1. git commit -m ''
2. git fetch orgin/master
3. git rebase orgin/master
4. git push orgin master
|
无卵用:不常用但是一定会用到的命令
Scene1: 管理现有的仓库链接
1 2 3 4 5
| 1. git remote
2. git remote -v
3. git remote rm [rmt_name]
|
Scene2: 配置本地git的信息
1 2 3
| 1. git config --global user.name [user_name]
2. git config --global user.email [user_email]
|
打标签(tag)
1 2 3
| 1. git tag v1.0 commit_id
2. git push origin master --tags
|
Git 常用命令列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| 1. git init 2. git remote add [rmt_name] [git_url] 3. git pull [rmt_name] [branch_name] 4. git push [rmt_name] [branch_name] 5. git fetch [rmt_name] [branch_name] 6. git clone [git_url] 7. git status 8. git add . 9. git commit -m "本次提交的信息" 10. git checkout [file_name] 11. git checkout . 12. git clean -df 13. git reset 14. git reset --soft [commit_id] 15. git reset --hard [commit_id] 16. git log 17. git log --oneline 18. git log [branch_name] 19. git commit --amend 20. git commit --amend --reset-author 21. git push -f [rmt_name] [branch_name] 22. git diff [file_name] 23. git branch [new_branch_name] 24. git checkout [new_branch_name] 25. git branch 26. git merge [branch_name] 27. git merge --patch [branch_name] [file_name] 28. git branch -d [branch_name] 29. git push rmt --delete [branch_name] 30. git remote 31. git remote -v 32. git remote rm [rmt_name] 33. git config --global user.name [user_name] 34. git config --global user.email [user_email] 35. git tag v1.0 commit_id 36. git push origin master --tags
|
全文完。