我的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
- 因为两个分支没有取得连续:

京公网安备 11010502036488号