Git && Linux常见操作命令

222 阅读3分钟

一、Git开发常用指令

git:分布式版本控制工具

工作区:

stash:储藏区

workspace/working Directory:工作区

Index/Stage:暂存区

Local repositort:仓库区/本地仓库

remote repository:远程仓库

968423295.png

分支

本质是单个指向commit的可变指针

master分支:只是约定的默认分支

HEAD分支:指向当前活动分支的最新一次提交

拉取

git clone 地址   // 克隆分支
git pull origin dev-cy   // 拉取具体的分支
git checkout 名字   //切换到该分支
git checkout -b 名字   //新建分支并切换到该分支

提交

git status   // 获取当前分支的状态
git commit --no-verify -m "注释说明"   // 加注释提交
git push  // 推送
git push origin dev-cy // 推送到具体的分支

合并分支

git checkout develop  //切换到该分支
git merge dev-cy  //merge要合并的分支
git push origin develop  //推送到被合并的分支

合并提交某一个分支

git checkout master//切换到该分支
git checkout develop './'  //切换到该分支具体文件

根据commit id 提交到另一个分支上

git checkout master  // 切换到该master分支
git cherry-pick 1873e35     //(如果没有冲突,将成功合并)
git push origin master  // 推送到master分支

切换分支如果不改变本地代码时

先 git stash 后 checkout 分支  完成后   切换回 原分支 再 git stash pop 恢复文件
git stash   能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录
git stash pop   恢复最近的缓存到当前文件中,同时删除恢复的缓存条目。

回退到版本

回退到上一个版本:  git reset  --hard HEAD^; 回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。
回退到前100个版本: git reset  --hard HEAD~100 。
回退到制定版本:    git reset  --hard 版本号

不同程度提交的回退方式

1、当git merge 但还没add时,若想取消这次合并
    git merge --abort
2、已经 git add 了
    先用 git reflog 指令显示历史的操作,再用 'git reset --hard commit id’就可以回退到操作之前的状态了
    git reflog
    git reset --hard commit id
3、撤回 commit命令
    git reset --soft HEAD^
    git reset --soft commit id^   // ^ 这个符号不能丢
4、push 后回退
     git log  // 提交记录
     git reset --soft aa18d5c5c681061a9d3  // 回退到某个记录
     git push origin dev-cy --force // 强制覆盖   
5、回退push后的单个文件
    git log查看提交历史,找到想要回滚的提交的ID(例如:”abcdef”)
    git revert -n abcdef //撤销提交,但并不自动生成一个新的提交
    git checkout HEAD -- example.txt   //从最新的提交中恢复文件”example.txt”的更改
    git commit -m "Revert file example.txt from commit abcdef"//创建一个新的提交,该提交仅撤销了文件”example.txt”的更改

常见问题

别名设置

git config --global alias 要替代的原操作

git config --global --unset alias 取消别名

git config --list | grep alias:列出别名

忽略文件,在项目的.git下创建.gitignore文件,该文件中的内容将被忽略

/开头表示目录

*通配多个字符

?通配单个字符

[]包含单个字符的列表

!不忽略匹配到的文件或目录

统计代码命令

git log --author="hhh" --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }'

二、Linux开发常用指令

vim操作

进入编辑器 vi/vim,vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式

 i  进入编辑模式
 esc  退出编辑模式 
 
 :w   保存文件
 :q   退出Vim
 :q!  强制退出Vim,用于放弃保存修改的情况
 :wq  正常保存退出
 :wq! 强制保存并退出Vim