git常用命令总结

设置用户名和邮箱

设置(切换)用户名:git config --global user.name "名称"

设置(切换)邮箱:git config --global user.email "邮箱

查看用户名:git config user.name

查看邮箱:git config user.email

查看所有配置: git config --list

 

从远程仓库拉取代码到本地

方法1:

  git init              将此文件初始化为本地git仓库

  git remote add origin 远程仓库地址            与远程仓库建立链接

  git remote set-url 仓库名  仓库地址              用来改变已有仓库名的提交地址,也叫仓库迁移

  git pull origin branc_name        将远程仓库的某一分支代码拉取下来

方法2:

  git clone 远程仓库地址    直接把远程仓库代码克隆下来(方便快捷,推荐) 与上面的差别是,克隆会把整个项目文件夹拉取下来,上面的操作只会拉取项目文件夹下的所有文件

查看远程仓库地址:

  git remote -v   

如何查看,提交到本地仓库但未推送到远程仓库的代码

     git log branch_name ^origin/branch_name     查看某一个分支的未推送到远程仓库的提交记录    如果有提交记录就代表这几次的提交没有推送到远程仓库

  git status  也可以查看到是否有没有推送的提交 

 

一次最普通的也是最经常的提交代码操作

  git pull origin branch_name   or git pull  将远程代码拉取到本地(每次提交前都要拉取一下代码,把别人的代码拉取下来)带origin 分支名的 是首次把某一个分支的代码拉取下来

  git add *     把修改的所有文件添加到暂存区

  git commit -m "本次提交的解释说明"     将暂存区的代码提交到本地仓库

  git commit -am ‘本次修改说明’   是将git add . 和 git commit 合并到一起的命令  前提是 此次提交没有新增的文件,因为新增的文件还未被追踪,不能用-am命令

  git push origin branch_name   or  git push 将本地仓库的代码推送到远程仓库 

分支操作 

  git checkout -b branch_name    新建并切换到一个分支

  git checkout -b 本地分支名 origin/远程分支名  将远程分支拉去到本地(本地不存在)

  git branch branch_name   新建一个分支 但不切换到这个分支

  git checkout branch_name  切换到某一个分支

  git branch   查看本地仓库分支列表

  git branch --merged  查看所有已合并的分支(相对于主分支) 

  git branch --no-merged  查看所有未合并的分支(相对于主分支) 查出的结果不包括当前所在分支

  git branch -a    查看远程仓库分支列表

  git push origin branch_name  将某一分支上的代码推送到远程仓库  (实用于新分支首次推送,因为此时远程仓库并没有此分支,在当前分支也可以用这个命令把其它分支推送到远程仓库)

     git merge branch_name  将某一分支合并到当前分支

  git merge --abort 撤销本次合并

  git branch -d branch_name  删除某一本地分支(不能是当前分支)

  git push origin --delete branch_name  删除远程仓库某一分支 

       git push -d branch_name 删除本地分支

  git branch --merged | egrep -v "(^\*|main|develop)" | xargs git branch -d   删除掉已经合并过的分支中的除main、develop以外的所有分支(只支持mac、lniux系统,windows需要在git bush上才能使用)

  git branch --no-merged | egrep -v "(^\*|main|develop)" | xargs git branch -D  删除除main、develop分支以外的所有未合并的分支,删除未合并的分支需要用大写D

查看提交日志:

  git log  普通的查看日志方法

  git log -p -2  查看最近两次的提交记录和变动的地方

  git log --oneline  让日志像是成一行,只显示 commit码和说明

  git log --gragh  查看版本线图,只有一个分支的话五多大用处

  git log --graph --oneline 让版本线看着更清晰

  git log --pretty=oneline  日志变成一行的同时,显示完整的档案码

  git log --pretty=format:"%h - %an, %ar : %s"     定制化日志格式     hash值(档案号)- 作者,多少时间前 : 提交说明

  git log --author="作者名" 查询某个开发者的提交日志

查看此次修改的内容

  git diff  查看此次修改的所有文件的修改

  git diff  index.html  查看此次index.html修改的内容

  git diff --staged   当git add 追踪过后,用这个命令去查看修改的文件,如果commit执行后  git diff就不能查看了

git忽略文件配置

  .gitignore 文件是唯一git可以识别的文件

  /node_modules 忽略node_modules文件夹

  *.log  忽略 .log结尾的文件

  *.zip  忽略.zip结尾的文件

  git rm -r --cached node_modules 假如失误将node_modules不该追踪的文件追踪了,可以用这个命令把这个文件从追踪里踢出来

  git rm -r --cached .  把缓存中的所有文件都踢出来

回退操作 

  git rm --cache file_name   撤销缓存区的某一个文件的修改

  git reset  commit码     将本地代码重置到某一次提交,配合git log使用,如果想回退最近一次提交,那么需要重置到倒数第二次的commit码;这个操作,代码会重置到工作区

  git reset --hard commitid 代码回退到某一次提交,删除此次提交之后的所有提交(慎用)。

  git push -f or git push -f origin branch_name  本地版本回退后,强制覆盖到远程。git reset --hard 和 git push -f 这种组合要谨慎使用

 删除远程已经不存在而本地存在的分支:

 git remote prune origin

以上操作最为常用,建议使用sourcetree,会比命令行方便的多

 

同步远程分支所有信息(所有分支和tag或其它信息)

  git fetch origin --prune

// 丢弃工作区的修改
git checkout -- file
// 撤回暂存区内容 
git reset head <file>
// 撤回版本库内容
git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上上个版本 git reset --hard commit_id
git checkout commit_id -- file 把某一个文件回退到某个版本,与上面3个不一样的是,保留中间的版本,只是把某一个文件回退到了之前的版本
git checkout commit_id -- . 把所有的文件修改到指定版本(保留中间的版本) // 删除文件 git rm test.txt

 

fork的项目 如何拉去其他源的 代码

1、在fork项目上新增源仓库:

git remote add 源名称 http://xxx.git

2、拉去另一个源的某一个分支的代码,到当前分支

git pull 源名 分支名

git pull all develop   拉取  all源 上的develop分支 到当前源的当前分支

 

 删除远程仓库文件:

比如删除 common文件夹 需要带 -r

git rm -r --cached src/components/common

 

设置git对文件大小写敏感:

git config core.ignorecase false

 fork的项目,怎么同步正式仓库的分支

git remote update 正式分支仓库名 -p

有时候上面同步的分支不全,可以单独同步一个分支

git checkout -b branch_xxx --track 正式仓库名/branch_xxx

 git cherry-pick 单独合并其它分支上的某一次提交的代码:

// 将commit码对应的那一次提交  合并到当前分支(直接到commit之后的状态:提交后的状态)
git cherry-pick  commit码  
// 将commit码对应的那一次提交  合并到当前分支; 带上 -n 参数 相当于未添加到缓存区之前,可以手动撤回(add 之前的状态)
git cherry-pick -n  commit码

 

 

 ssh-keygan  生成ssh公钥和私钥     公钥会写入到用户目录的.ssh文件中的id_rsa文件(私钥)  和id_rsa.pub文件 (公钥)  (一般不为公钥设置密码)

 将公钥放到github中,就可以用ssh连接github了    git clone 可以直接用ssh的地址

 filezilla  软件可以可视化连接服务器

 

  

  - 

posted @ 2021-06-26 17:32  古墩古墩  Views(85)  Comments(0Edit  收藏  举报