Git命令行操作

基本操作

状态查看

git status

查看工作区、 暂存区状态

添加

git add [file name]

将工作区的“新建/修改” 添加到暂存区

提交

git commit -m "commit message" [file name]

将暂存区的内容提交到本地库

查看历史记录

git log

显示最完整

Sun@DESKTOP-32G24QA MINGW64 /d/GitWorkspace/Wechat (master)
$ git log
commit 438e4ed93695b5b0083d0747b75d1477443c99ba (HEAD -> master)
Author: sunyan_pro <syan_2019@163.com>
Date:   Tue Apr 21 11:24:43 2020 +0800

    My second commit, modify good.txt

commit 63aa6a363d66e7f4b301f6fc621bd31db1f8e41b
Author: sunyan_pro <syan_2019@163.com>
Date:   Tue Apr 21 11:16:08 2020 +0800

    My first commit new file good .txt

多屏显示控制方式:空格向下翻页,b 向上翻页,q 退出

git log --pretty=oneline

$ git log --pretty=oneline
25ff714b65f1d9e941dd930021b25af4ddaabcf8 (HEAD -> master) insert eee
131c88022cc377d9d61ed4341b2ae23dd648656c insert bbb
3f8d7742d160c1cf345a39747d717ba254fe82af insert bbb
248f7163d27e1b61ecaf9d4fad72af866fd7f12a for test history

git log --oneline

$ git log --oneline
25ff714 (HEAD -> master) insert eee
131c880 insert bbb
3f8d774 insert bbb
248f716 for test history
438e4ed My second commit, modify good.txt
63aa6a3 My first commit new file good .txt

git reflog

$ git reflog
25ff714 (HEAD -> master) HEAD@{0}: commit: insert eee
131c880 HEAD@{1}: commit: insert bbb
3f8d774 HEAD@{2}: commit: insert bbb
248f716 HEAD@{3}: commit: for test history
438e4ed HEAD@{4}: commit: My second commit, modify good.txt
63aa6a3 HEAD@{5}: commit (initial): My first commit new file good .txt

HEAD@{移动到当前版本需要多少步}

前进后退

基于索引值操作[推荐]

git reset --hard [局部索引值]

$ git reset --hard 438e4ed
HEAD is now at 438e4ed My second commit, modify good.txt

使用^符号: 只能后退

git reset --hard HEAD^
注: 一个^表示后退一步, n 个表示后退 n 步

使用~符号: 只能后退

git reset --hard HEAD~n
注: 表示后退 n 步  

reset 命令的三个参数对比(了解)

--soft 参数,仅仅在本地库移动 HEAD 指针
--mixed 参数,在本地库移动 HEAD 指针,重置暂存区
--hard 参数,在本地库移动 HEAD 指针,重置暂存区,重置工作区

删除文件并找回

前提: 删除前, 文件存在时的状态提交到了本地库。
操作: git reset --hard [指针位置]

删除操作已经提交到本地库: 指针位置指向历史记录
删除操作尚未提交到本地库: 指针位置使用 HEAD

比较文件

git diff [文件名]

将工作区中的文件和暂存区进行比较

git diff [本地库中历史版本] [文件名]

将工作区中的文件和本地库历史记录比较
不带文件名比较多个文件

分支管理

什么是分支?

  • 在版本控制过程中, 使用多条线同时推进多个任务

分支的好处?

  • 同时并行推进多个功能开发, 提高开发效率

  • 各个分支在开发过程中, 如果某一个分支开发失败, 不会对其他分支有任何影响。 失败的分支删除重新开始即可。

分支操作

  • 创建分支

    git branch [分支名]

  • 查看分支

    git branch -v

  • 切换分支

    git checkout [分支名]

  • 合并分支

    第一步: 切换到接受修改的分支(被合并, 增加新内容) 上

    git checkout [被合并分支名]  
    

    第二步: 执行 merge 命令

    git merge [有新内容分支名]
    
  • 解决冲突

    冲突的表现

    冲突的解决

    第一步: 编辑文件, 删除特殊符号

    第二步: 把文件修改到满意的程度, 保存退出

    第三步: git add [文件名]

    第四步: git commit -m "日志信息"
    1587448568530

​注意: 此时 commit 一定不能带具体文件名

原文地址:https://www.cnblogs.com/sunyanblog/p/12752146.html