常用 git 命令汇总

1、git 配置

git config --global user.name 'XXXX'     //设置全局用户名

git config--global user.email 'XXXXX'   //设置全局用户邮箱

2、git 基本操作(* 表示任意字符)

git init        //  创建仓库

git add *       //将文件加入暂存区

git commit -m 'XXXXX'   //将暂存区的文件提交到仓库中

git status      // 查看状态

git diff (*)  // 查看全部文件*(指定文件)的具体修改

git log         // 查看历史提交记录

git cherry-pick    //  将指定的提交(commit)应用于当前分支。

git stash      //  暂时将未提交的变化移除

git stash pop  //  移入上次未提交且被移除的内容

3、版本回退

git reset --hard HEAD^      //回退到上一个版本

git reset --hard HEAD^^     //回退到上上个版本

git reset --hard 'commit_id'    //回退到指定版本号
git push --force        // 远程分支回退

git reflog      //查看想要回退的版本号

git reset HEAD *    //对其已进入暂存区的修改

git rever HEAD~3    // 丢弃最近的三个commit,把状态恢复到最近的第四个commit,并且提交一个新的commit来记录这次改变。

git rever -n master~5..master~2 //丢弃从最近的第五个commit(包含)到第二个(不包含),但是不自动生成commit,这个revert仅仅修改working tree和index。

git rm              //删除文件

注意:reset与revert的区别

git rever :
(1) 是用一次新的commit来回滚之前的commit

(2) 是用一次逆向的commit '中和'之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现

(3) 是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容


git reset :
(1) 是直接删除指定的commit

(2) 把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入

(3) 是把HEAD向后移动了一下

4、git分支管理

git branch          //查看本地分支信息

git branch Dev      //创建分支

git checkout dev    //创建并进入分支

git merge dev       //合并分支到当前分支

git merge --no-ff dev   //禁止快进式合并 

git branch -D dev   //删除分支

git branch -r -D origin/dev   //删除远程分支

5、远程仓库

git clone url       //克隆远程仓库到本地

git remote add origin url       //添加远程仓库

git push -u origin master //推送到远程分支(-u 将本地的master和远程的master关联起来)

git fetch   //获取远程仓库的更新到本地,但是不合并

git pull    //获取更新内容后自动合并

git remote  //查看远程分支

6、建立本地分支与远程分支的关联

git branch --set-upstream 'local_branch' origin/'remote_branch'

7、修改本地仓库对应的远程仓库的地址

git remote 'set_url' origin url

8、 ==cherry-pick== 的用法

// 将指定的提交commitHash,应用于当前分支
git cherry-pick  

// 将feature分支的最近一次提交,转移到当前分支
git cherry-pick uat  

注: git cherry-pick命令的参数,不一定是提交的哈希值,分支名也是可以的,表示转移该分支的最新提交

(1) 举例来说,现有代码仓库有masteruat两个分支:

 a - b - c - d              master
         \
           e - f - g        uat

(2) 现将提交f应用到 master分支

// 切换到 master 分支
git checkout master

// cherry-pick 操作
git cherry-pick f

// 此时代码仓库会变成
 a - b - c - d - f          master
         \
           e - f - g        uat

(3) cherry-pick支持一次转移多个提交

//  将 A 和 B 两个提交应用到当前分支
git cherry-pick  

你可能感兴趣的:(常用 git 命令汇总)