我的git入门

创建git仓库

mkdir 仓库名

进入目录

cd 目录名

查看目录

pwd

命令把这个目录变成Git可以管理的仓库

  • 第一步,通过git init命令控制仓库
  • 第二步,用命令git add告诉Git,把文件添加到仓库:git add readme.txt
  • 第三步,用命令git commit告诉Git,把文件提交到仓库:git commit -m "wrote a readme file"

查看git工作状态和修改情况

  • 要随时掌握工作区的状态,使用git status命令。
  • 如果git status告诉你有文件被修改过,用git diff可以查看修改内容

git版本回退

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
  • 回退到上个版本:git reset --hard HEAD^,上上个版本git reset --hard HEAD^^
  • 查看版本id:git log --pretty=oneline
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

工作区和暂存区

  • git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支

##撤销和修改

  • 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
  • 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

删除文件

  • 命令git rm filename用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容
  • 恢复:git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

git推送到远程仓库

  • 关联远程库: git remote add origin git仓库网址 或者 git remote add origin git@github.com:用户名/git仓库名

  • 推送本地库到远程库:git push -u origin master

  • 输入上一步命令后,只要本地做了提交,使用git push origin master就可以把本地master分支的最新修改推送至GitHub

  • 注意:如果输入$ git remote add origin git@github.com:djqiang(github帐号名)/gitdemo(项目名).git 
        提示出错信息:fatal: remote origin already exists.
        解决办法如下:

    • 1、先输入$ git remote rm origin
    • 2、再输入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不会报错了!
    • 3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section ‘remote.origin’. 我们需要修改gitconfig文件的内容
    • 4找到你的github的安装路径,找到一个名为gitconfig的文件,打开它把里面的[remote “origin”]那一行删掉就好了!
  • 克隆远程库
    git clone git@github.com:用户名/仓库名.git

分支管理

  • Git鼓励大量使用分支:

  • 查看分支:git branch

  • 创建分支:git branch <name>

  • 切换分支:git checkout <name>或者git switch <name>

  • 创建+切换分支:git checkout -b <name>或者git switch -c <name>

  • 合并某分支到当前分支:git merge <name>

  • 删除分支:git branch -d <name>

git分支合并出现冲突

  • 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成
  • 解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
  • git log --graph --pretty=oneline --abbrev-commit命令可以看到分支合并图。

git暂存分支

  • 先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场
  • 在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令,把bug提交的修改“复制”到当前分支,避免重复劳动

查看远程库

  • 查看远程库信息:git remote -v
  • 推送本地分支:$ git push origin master
  • 克隆远程分支:git clone git@github.com:用户名/仓库名.git
  • 创建远程origin的dev分支到本地:git checkout -b dev origin/dev
  • 多人协作
    • 首先,可以试图用git push origin <branch-name>推送自己的修改;

    • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    • 如果合并有冲突,则解决冲突,并在本地提交;

    • 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

    • 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

出现的问题:

  • 出现错误:fatal: refusing to merge unrelated histories
    • 因为两个分支没有取得连续:git pull origin master --allow-unrelated-histories
全部评论

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
10-28 14:42
门头沟学院 Java
watermelon1124:因为嵌入式炸了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务