美文网首页
git - 常用命令及常见问题

git - 常用命令及常见问题

作者: 背着生活往前走你才辨的出美和丑 | 来源:发表于2020-12-17 09:18 被阅读0次

    创建仓库

    在git网站创建我的仓库。在本地创建仓库文件夹。

    git pull // 已经存在的项目 - 更新代码
    git clone http://192.168.2.200:8081/gitPro/test.git
    git init //通过git init命令把这个目录变成Git可以管理的仓库:
    

    代码提交

    如何上传git代码,进入项目根目录运行git黑窗口

    git status//红色,就是待添加到本地仓库的意思
    git add --all//全部添加
    //这个命令会把当前路径下的所有文件,添加到待上传的文件列表中
    git commit -m "我是说明"//用命令git commit告诉Git,把文件提交到仓库,-m后面输入的是本次提交的说明
    git push -u origin master    //将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了
    

    分支的爱恨情仇(本地分支)

    被迫使用git分支的概念(不被人拿鞭子抽上,真的不会知道,分支有多么好)
    当你把自己的分支弄崩溃,把master搞出问题后,分支就掌握的差不多了。
    笨人有笨办法:没有自信的小伙伴,那就先备份代码,再合并分支。

    $ git checkout -b dev //首先,我们创建dev分支,然后切换到dev分支
    $ git branch //用git branch命令查看当前分支
    //git branch命令会列出所有分支,当前分支前面会标一个*号
    
    git add readme.txt  //然后提交
    git commit -m "我是说明"//把文件提交到仓库
    
    //如果你需要继续在master主线上工作,你可以切换
    $ git checkout master //切换回master分支
    
    $ git pull //拉代码
    
    $ git merge dev //把dev分支的工作成果合并到master分支上
    
    $ git branch -d dev //删除dev分支,注意:合并后再删除
    
    $ git branch //查看branch,就只剩下master分支了
    $ git push origin xxx //(xxx为要提交代码的分支名称)
    

    合并分支出现以下问题处理办法:


    1993707423-5fc5beb1896f7_articlex.png
    $ git merge --abort //将会抛弃合并过程并且尝试重建合并前的状态
    // :wq! 或者 :q! 正常退出 VIM** ,就能正常合并啦。
    

    :wq! 或者 :q! 正常退出 VIM** ,就能正常合并啦。(这句话很重要)

    远程分支

    $ git branch -a // 查看已有的本地及远程分支
    $ git push origin --delete dev // 删除远程分支
    
    远程先开好分支然后拉到本地
    $ git checkout -b dev origin/dev //检出远程的dev分支到本地
    
    本地先开好分支然后推送到远程
    $  git checkout -b feature-branch    //创建并切换到分支feature-branch  
    $  git push origin feature-branch:feature-branch    //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建)
    

    本地分支dev推送代码到远程分支dev

    $ git branch -a // 查看已有的本地及远程分支
    $ git checkout -b dev origin/dev //检出远程的dev分支到本地
    $ git add --all // add
    $ git commit -m "本地分支dev推送代码到远程分支dev" // commit
    $ git push origin dev:dev // 推送:本地分支dev推送代码到远程分支dev
    

    本地分支提交远程分支,merge request提交

    $ git checkout -b ylf // 创建本地分支,开发
    $ git add . // 查看已有的本地及远程分支
    $ git commit --no-verify -m "信息" // 避开eslint commit
    $ git checkout dev // 切换到主分支
    $ git merge ylf // 合并
    $ git push origin ylf:yuanchengylf // add
    $ // git服务器 merge request
    $ // new merge request
    

    代码冲突

    **这时冲突的文件内容**
    <<<<<<< Updated upstream
    服务器代码
    =======
    本地代码
    >>>>>>> Stashed changes
    

    解决方式

    git pull // 发现冲突(error: Your local changes to the following files would be overwritten by merge:src/api/config.js)
    
    git stash //(1)先将本地修改存储起来 
    git pull // (2)暂存了本地修改之后,就可以git pull了。
    git stash pop // (3)还原暂存的内容, 这时冲突的文件都会到达你的本地项目文件中。
    git add *** // 手动处理好冲突后
    

    vue .gitignore过滤提交文件

    不想提交某个文件到git服务器上

    .DS_Store
    node_modules/
    /dist/
    /src/api/config.js
    

    .gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。

    原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,

    这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。

    解决方法: git清除本地缓存(改变成未track状态),然后再提交:

    # git rm -r --cached .
    # git add .
    # git commit -m 'update .gitignore'
    # git push -u origin master

    历史回退 - 时光穿梭

    git status // 查看版本
    git reset --hard HEAD^ // 上一个版本就是HEAD^,上上一个版本就是HEAD^^
    git reset --hard 1094a // 去任意一个git上存在得版本,输入版本号。版本号没必要写全,前几位就可以了
    

    SSH拉取代码

    git项目代码

    // 在Git Bash窗口中输入
    $ git config --global user.name "随意起名字" 
    $ git config --global user.email "你的GitHub邮箱"  
    
    // 生成生成SSH key
    $ ssh-keygen -t rsa
    
    314954961-5ea3cb819f3c3_articlex.png

    由上面路径C:\Users\Administrator.ssh找到id_rsa.pub文件,用文字编辑工具打开,复制

    到自己的GitHub中,找到Settings进入,点击SSH and GPG keys,再新建一个SSH key,将id_rsa.pub文件中的内容放到key中

    相关文章

      网友评论

          本文标题:git - 常用命令及常见问题

          本文链接:https://www.haomeiwen.com/subject/ngvagktx.html