git命令学习

安装:https://git-scm.com/downloads

配置:

1.git config --global user.name ""

   git config --global user.email ""

2.基础命令:

  mkdir  name    新建文件夹

  touch  name    新建文件

  cd name   进入目录

  cd ../  返回上一级目录

  pwd   查看当前目录路径

  git init 当前目录变为git可管理的仓库

  cat readme.txt  查看文件内容

git命令:

git add fileName1 fileName2         工作区文件添加到暂存区

git commit -m "注释" 暂存区文件添加至本地仓库

git status 查看工作区文件状态

版本控制:

查看历史记录:

git log

git log --pretty=oneline

版本回退:

git reset --hard HEAD^

git reset --hard commit_id     head指向版本号

git reflog           记录每一次的命令

管理修改

git diff 查看工作区文件修改

git diff HEAD -- readme.txt  查看工作区和版本库里 最新版本的区别

撤销修改:

git checkout -- readme.txt  撤销工作区的修改,将文件回到最近以此add或者commit的状态

1.工作区修改未添加到暂存区:撤销修改,工作区文件回到和版本库里的状态一致;

2.工作区文件已添加到暂存区:又做了修改,则将文件恢复到add暂存区的状态

修改已提交到暂存区,撤销暂存区的修改

git reset HEAD -- filename   撤销暂存区的修改,回退到工作区,

git checkout -- filename 工作区文件回退到未修改状态

远程仓库配置:

1.创建ssh key:

$ ssh-keygen -t rsa -C "965045557@qq.com" 创建公钥
码云公钥配置,远程仓库识别计算机身份;公司电脑和家里个人电脑ssh都进行配置,就可以全部识别身份

2.远程仓库新建仓库

本地仓库运行

关联远程仓库  git remote add origin git@github.com:michaelliao/learngit.git

第一次推送内容到远程仓库时 需要携带 -u 参数

$ git push -u origin master
 
如果报错:本地初始化项目时 git init,远程仓库新建时初始化有 readme.md 所以需要先pull远程仓库文件到本地合并分支
$ git pull origin master
$ git pull origin master --allow-unrelated-histories
$ git remote remove origin   解除远程仓库关联

正常开发新建仓库操作:

远程仓库新建项目仓库;

本地运行git clone https:// 克隆仓库到本地

git clone

分支管理:

创建分支 git branch dev

切换分支 git checkout dev

创建并切换分支 git checkout -b dev

查看本地分支  git branch

bug修复:

情景:.master分支有bug需要修复,本地工作尚未完成;

1.本地运行 git stash 保存本地工作

2.切换到master分支: git checkout master

3.master分支上处理bug,git add filename; git commit -m '';

4.切换到开发分支:git branch dev

5.开发分支上 复制 master分支的修改到dev分支; git cherry-pick issue_id

6.git stash pop 恢复保存的现场;实现master分支修改同步到dev,并且 继续dev分支的开发工作;

开发新的功能,最好是新建一个分支,完成后再合并分支,删除新建分支

如果新分支建立完毕,开发结束,不需要此次开发的功能了,并且需要删除该分支。但是分支尚未 commit

则 git branch -D feature-vulcan 强行删除分支

 

多人协作:

向远程仓库推送分支:

git push origin master :master分支应时刻保持同步

git push origin dev: 开发分支,需要同事能够看到自己的代码,也需要时刻同步

 

git clone 默认只 克隆 master 分支

git checkout -b dev origin/dev

就可以在dev分支上进行修改,然后push到dev分支;

git push origin dev

 

如果在clone 代码到本地 => push 代码到远程 的期间,dev分支有改动,则需要:

git pull

 

设置本地dev分支 与 远程 origin/dev 的链接:

git branch --set-upstream-to=origin/dev dev

因此,多人协作的工作模式通常是这样:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

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

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

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

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

小结

  • 查看远程库信息,使用git remote -v

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

默认的,从远程仓库clone 仅克隆 master分支;

如果要在dev分支上进行开发,则:

git checkout -b dev origin/dev

开发结束就可以push到dev分支:

git push origin dev

如果远程仓库的dev分支有新的提交,应为有冲突,本地push会报错;

通过 git pull remote dev 把远程dev分支拉取到本地,在本地合并;

拉取过程报错,因为远程的dev 分支和本地的dev分支没有建立联系;

git branch --set-upstream-to=origin/dev dev

git pull

手动解决冲突,在 add ---------------commit -------------push 提交远程仓库

 

 

git stash 保存现场

git stash list 查看保存现场记录

git cherry-pick commit_id  提交_id的修改复制到当前分支

git stash pop 恢复保存的现场,并删除stash记录

git stash apply stash@{n} 恢复指定的现场

git stash drop 删除保存的现场

 

 

 

 

1.git add 文件名  ---------------------- 工作区文件提交到暂存区

2.git commit -m "注释" --------------  暂存区内容提交到本地仓库

3.git status   ---------------------------- 查看工作区 或 暂存区 文件状态, 列出改动过的文件

4.git log --------------------------------- 查看提交记录

git log --pretty=oneline

git reflog

git branch

git branch dev

git checkout dev

git checkout -b dev

git reset --hard HEAD^

git reset --hard HEAD commit_id

git reset --hard HEAD~5

 

posted @ 2021-06-11 20:48  jx_langlanglang  阅读(49)  评论(0)    收藏  举报