Github小白指南

咳咳,有如此完美的可视化界面不用,偏偏要用命令行,何必呢!

命令行这东西,按需获取,当你遇到需要完成的操作无从下手时,可以过来看看,没必要全部记下来。

老司机专属链接:Git 常用命令列表

零基础:仓库初长成

Scene1: 我是项目的创建者,在git上已经创建了一个新的仓库,我要怎么推送本地代码到远端仓库?

1. git init // 在项目的根目录执行,初始化本地仓库

2. git remote add [rmt_name] [git_url]  // 构建远程仓库连接

3. git push [rmt_name] master  // 将本地代码推送到远端的master分支

Scene2: 我是项目的参与者,git上已经有了代码仓库,我要怎么参与开发?

git clone [git_url]  // 复制远程仓库到本地


入门:贡献自己一份力

Scene1: 我对本地仓库进行了修改,我要怎么提交到远端仓库?

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. git status // 查看哪些文件被修改了,发现有些文件不应该被修改

2. git checkout [file_name] // 撤销对原有文件的修改,如果有多个文件,重复执行此操作

// 2. 如果想撤销所有修改,git checkout .

3. git clean -df // 恢复新增的或删除的文件

Scene3: 我想撤回add操作(已经add但是还没commit)

git reset    // 把add的文件全部从暂存区取出来,如果只想取出单个文件,后面可以跟文件名

Scene4: 我想撤回commit操作(已经commit但是还没有进行push)

1. git log      // 查看所有的提交日志,复制上一次commit的commit_id

2. git reset --soft [commit_id] // 撤销此次commit并保留所有的修改

Scene5: 我进行了commit操作,但是我发现我的标签写错了,怎么办?

1. git commit --amend  // 执行后编辑信息保存即可(你可能需要一些简单的vim知识)

2. git commit --amend --reset-author    // 修改上一次提交的作者信息

Scene6: 我想回滚到之前的某一个版本

1. git log // 查看提交日志,复制你想要回滚到的那一次提交的commit_id

// 注意:此次回滚为强制回滚,这之后的所有修改都不会被保存

// 如果你后悔了,只需要到远端仓库中复制当前head的commit_id再执行一遍此操作即可

2. git reset --hard [commit_id]

// 此操作红色报警,不到万不得已千万不要用!!!

3. git push -f [rmt_name] [branch_name]  // 强制覆盖远端仓库,即进行远端仓库的回滚,此操作不可逆

Scene7: 最不想看到的结果,pull或者merge的时候发生冲突了

1. 根据合并结果对所有的冲突进行手动处理

2. git add .

3. git commit -m "合并信息"    // 重新提交一遍

4. git push [rmt_name] [branch_name]

Scene8: 想查看某个文件具体的修改内容?

git diff [file_name] // 对比该文件修改前后的区别,如果无文件名将对比所有文件的修改

Scene9:我想查看所有的提交记录

1. git log      // 查看所有的提交记录

2. git log [branch_name]  // 查看某分支的提交记录

3. glog    // 等价于 git log --oneline,简化日志,一次提交占一行,有利于全局观察


进阶:花里胡哨的一份力

Scene1: 我要新建一个分支

1. git branch [new_branch_name]      // 创建一个新的分支

2. git checkout [new_branch_name]    // 如果需要切换到新分支请执行此命令

// 上面两个步骤可以合并为 git checkout -b [branch_name]

Scene2: 我要查看现有的所有分支

git branch  // 查看分支

Scene3: 分支开发完了,我要合并到主分支master上

1. git checkout master  // 切换到master

2. git merge [branch_name]    // 合并分支到master,如果有冲突,你懂的

3. git merge --patch [branch_name] [file_name]  // 只合并单个文件到master上,比较少用

Scene4: 分支开发完了,也就没有存在的必要了

1. git branch -d [branch_name]    // 删除本地分支, -d会判断是否合并,-D会强制删除

2. git push rmt --delete [branch_name]    // 删除远程仓库的分支


大师:优化提交记录 - rebase

  • 超高能警报!!虽然rebase可以简化提交记录,如果你用的是 Source Tree 等可视化工具,那么点一下就可以了,如果是用的命令行,请在熟练使用过 rebase 命令的高手陪伴下使用该命令!!!否则!!!后果你承担不起!!!

普通的提交最大的问题,就是有太多的 commit,当参与人数较多时,会出现大量的如merge这种无用的commit日志,而且在查看提交记录图时,会有很多从分支上合并到主分支的线条,看起来不美观。


// 下面的流程会把本地的commit一一粘贴到master上,而不是merge

// 2、3步骤可以合并为 git pull -rebase orgin master

1. git commit -m ''

2. git fetch orgin/master

3. git rebase orgin/master

4. git push orgin master


无卵用:不常用但是一定会用到的命令

Scene1: 管理现有的仓库链接

1. git remote  // 查看现有的远程仓库链接名

2. git remote -v    // 相比于上一条多了url信息,更加详细

3. git remote rm [rmt_name]  // 删除一个现有链接

Scene2: 配置本地git的信息

1. git config --global user.name [user_name]  // 配置用户名

2. git config --global user.email  [user_email]  // 配置邮箱

打标签(tag)


1. git tag v1.0 commit_id  // 给某一此commit添加tag

2. git push origin master --tags // 把本地的标签push到远程仓库

<span id="list"></span>

Git 常用命令列表


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]  // 将本地代码推送到远端的master分支

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    // 把add的文件全部从暂存区取出来,如果只想取出单个文件,后面可以跟文件名

14. git reset --soft [commit_id] // 撤销此次commit并保留所有的修改

15. git reset --hard [commit_id] // 撤销此次commit并删除所有的修改

16. git log      // 查看所有的提交日志

17. git log --oneline // 查看所有的提交日志(简化版)

18. git log [branch_name]  // 查看某分支的提交记录

19. git commit --amend  // 修改上一次提交的信息(未push)

20. git commit --amend --reset-author    // 修改上一次提交的作者信息(未push)

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]    // 删除本地分支, -d会判断是否合并,-D会强制删除

29. git push rmt --delete [branch_name]    // 删除远程仓库的分支

30. git remote  // 查看现有的远程仓库链接名

31. git remote -v    // 相比于上一条多了url信息,更加详细

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  // 给某一此commit添加tag

36. git push origin master --tags // 把本地的标签push到远程仓库

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 12,749评论 1 26
  • 前言 Git使用教程 Git是什么 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 ...
    90后的思维阅读 4,464评论 0 0
  • Git使用教程:https://blog.csdn.net/tgbus18990140382/article/de...
    SkTj阅读 7,779评论 1 11
  • 三大区域: 工作区 → 缓存区 → 本地仓库 一 、 使用 git config 命令进行配置: git ...
    Manchangdx阅读 7,863评论 0 2
  • 现实 零距离身处其中 如白蒙蒙见底的湖水 单调无味 另人兴致索然 理想 远距离处在其外 如云雾缭绕的芙蓉 无限遐想...
    roadunderfoot阅读 3,021评论 0 1