GIT常用命令

常用命令

  1. 首先在自己的github上建立空仓库,git clone克隆到本地用vscode打开,这是感觉最简单的本地链接远程git的方式了。
  2. 常写react项目`
1
2
3
4
create-react-app app
cd app
yarn start
//正常显示网页的话就可以进行开发了
  1. 最基本的在master上开发的话,这就差不多够用
1
2
3
4
5
git add .
git commit -m "fix: xxx"
git push --set-upstream origin
//git push --set-upstream origin feature/PRJ-EIBBJHFHHBFFB-40678869/opCondition-xjq
git push origin
  1. 分支开发
1
2
3
4
5
6
7
8
9
10
11
git checkout -b new //创建本地分支
git push origin new//本地分支推送到远程仓库,否则远程仓库是没有的
git checkout new//切换到new分支
//开发完成提交代码
git add .
git commit -m "fix: xxx"
git push origin
//此时分支上就会有你的代码了
//删除分支
git branch -d [branchname]//删除本地分支
git push origin --delete [branchname]//删除远程分支
  1. 分支上开发完成需要合并到master
1
2
3
git checkout margin//切换到master分支
git merge new//代码合并,多人开发有可能遇到冲突,需要先解决冲突
git push origin master//推送到远程仓库

其他

1.修改commit信息

1
git commit --amend

此时会进入vim编辑界面,按i编辑好commit信息,按esc再按:wq,就好啦。

2.删除原仓库的部分文件

第一种办法,适用于删除的文件不多的情况

1
2
3
4
git pull origin master//拉取远程代码
ls//列出文件名
git rm -r --cached '文件名'
git push origin

第二种办法,版本回滚,适用于该版本不小心上传了大量不需要文件

1
2
3
4
5
6
git log//查看历史提交信息
git reset --hard '上面查询到的提交id'
git push origin//推送到远程
//只回滚一个版本的话
git reset --hard HEAD^
git push origin

注意用revert代替reset也可以,但是两者是有区别的,reset操作可以回退到想回到的版本,但是之后的原本信息就没有了,revert操作相当于修改选择的版本,不影响其他的提交记录。

3. 查看提交信息

git log可以查看每次的提交记录
git show ID可以查看每次提交的修改内容

4.暂存

背景:你的分支开发了三四天突然遇到紧急任务需要修改另一个分支的代码,怎么办,博主最开始的想法是,先提交本地代码,然后再切换分支,可是这样就会产生无用的提交记录,怎么样可以更优雅的处理这种情况呢,用stash暂存!

1
2
git stash//暂存起来
git stash apply//恢复

需要说明,git stash是本地的,不会push到远程仓库,建议使用
git stash save "test-cmd-stash"代替添加注释
git stash list查看当前所有的暂存
git stash apply 暂存名可以恢复成想要的暂存

rebase

用途一:合并commit
git log查看分支的commit信息,比如想合并最新三次提交,用git rebase -i HEAD~3指令,会进入编辑界面
git
只看前三行,简单的合并只需要把后两个pick改为s保存就ok,然后会进入编辑commit信息界面
git
这里只修改add b.php``add c.php``add d.php这三个部分就好,不修改也行,保存退出在执行git log就会发现三次commit已经合并到一起了,这样的commit是多么的清晰。

  1. 命令git checkout – readme.txt 意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
上一篇

前端面试问题汇总(不断更新)