美文网首页
Git(不定期更新)

Git(不定期更新)

作者: darkTi | 来源:发表于2020-08-07 19:21 被阅读0次

一、 基础操作

  1. git add -A 保存所有的修改;
  2. git add . 保存新的添加和修改,但是不包括删除;
  3. git add -u 保存修改和删除,但是不包括新建文件。

二、分支及合并

基础命令

  1. git checkout -b dev 创建dev分支并转到dev分支;
  2. git branch 查看当前所有的分支,当前所在分支前有一个*号;
  3. 在dev分支上提交操作按照上面基础操作即可,就可以把内容提交到dev分支上;
  4. git checkout master 切换回到master分支;
  5. git merge dev 把dev分支的工作成果合并到master;git merge命令用于合并指定分支到当前分支;
  6. git branch -d dev 删除dev分支,d是delete;
    image.png

feature分支

  • 一般是添加新功能时,又不希望它扰乱主分支,所以每添加一个新功能,就需要新建一个feature分支,在上面开发,完成后,合并,最后再删除该feature分支;
    1、创建一个名为feature-wt的分支,git switch -c feature-wtgit checkout -b feature-wt
    2、改动提交后(git add、git commit),切回dev,准备合并:
    git switch devgit checkout dev(切回dev);
    git merge --no-ff -m "complete dolist" feature-wt(把feature-wt合并到dev分支);
    git branch -d feature-wt(删除掉feature-wt分支);
    3、如果feature-wt还没有被合并的时候,就要删除,这时就需要强行删除,使用大写的-D参数,git branch -D feature-wt

三、查看当前所在仓库

  1. git remote show origin 查看当前所在仓库;
  2. git remote set-url origin git@192.168.30.29:chenwei/em-data.com.cn.git 把远程仓库origin设置为新的仓库地址;
  3. git remote -v 查看本地仓库的所有远程仓库;
  4. git remote add gitlab git@192.168.15.229:username/temp.git 在本地仓库添加另一个远程仓库gitlab(相当于远程主机名就位gitlab,这个主机名自己可以随便起,但貌似不能用github,可以自己试嘛~);
    添加新的仓库.png

四、撤销上一次push过的提交

  • 因为要撤销提交,不保留它,所以用git reset;
  • 首先有两个参数,如下面代码,第一个只是改变了HEAD的指向,并不会改变本地的代码;而第二个会改变本地代码,不仅指向变化了,本地代码也会回到那个版本(!!所以,用--hard的话最好把本地的文件先复制一份,以防丢失写过的代码
git reset --soft  
git reset --hard 
  • 的个数表示回退几个版本,^就表示回到上上个版本;
git reset --soft HEAD^ 
git reset --hard HEAD^ 
  • 也可以后面跟版本号,先用git log看一下之前的版本号,确定要重置到哪个版本,指向HEAD就会移动到那个版本;
git reset --soft 版本号
git reset --hard 版本号
  • 最后,强制push
git push origin HEAD --force

五、git reset(回退)和git revert(回滚)的区别

区别就是后面的版本需不需要保留下来

1、git reset(回退)

  • 适用场景:想要恢复到之前的某个版本,且那个版本之后的提交都不要了!!
  • 历史记录中不会出现放弃的提交记录
  • 具体用法可见上条;

2、git revert(回滚)

  • 适用场景:想要撤销某次提交,且那个版本前面后面的提交都还需要保留的时候!!!
  • 它会把这次撤销作为一次新的提交;(git log的时候会看到)
git revert HEAD    //  撤销前一次 commit
git revert HEAD^  //  撤销前前一次 commit
git revert  版本号  //  撤销指定的版本

六、git的工作区间

  • 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的;
  • 暂存区:已经 git add xxx 进去,且未 git commit xxx 的;
  • 本地分支:已经git commit -m xxx 提交到本地分支的;

七、创建本地分支并把本地分支推送到远程仓库

  • 比如说你在造轮子,看git的时候只想看到当前那个轮子的代码,这时你就需要为每个轮子建一个分支,然后把这个分支push到远程;
    1、创建分支git checkout -b input
    2、推送到远程git push origin input:input
    3、切回mastergit checkout master

  • 然后你就可以在远程仓库看到input分支了。

  • 还可以观察到,当时在哪个分支下新建本地分支,那么新建的那个本地分支内容默认就会与当时所在分支的内容一致;可见图中,darkti是在master分支下新建的,wt是在feature分支下新建的;


    image.png

八、如何把本地分支与远程分支关联起来

  • 首先把相关的命令记一下:
    git branch:查看本地分支;
    git branch -r:查看远程分支;
    git branch -a:查看所有分支;
    git branch -vv:查看本地分支与远程分支的关联关系(你也可以用git remote show origin来查看关联关系);
    git branch XX:切换到XX分支上(XX是你的本地分支);

九、git stash

  • 当你本地的改动暂时不想提到仓库,但是又要拉取最新代码,这时你就可以先把你本地的代码stash存放起来;
  • 一定要先git add后再stash,这样才会把修改的文件储存起来;
  • git stash save "message":把改动的文件都存起来;
  • git stash list:查看储存文件的列表;
  • git stash show:显示存储的文件的改动,默认显示第一条;
  • git stash show stash@{3}:显示第4个存储的文件的改动(序号通过git stash list查看);
  • git stash apply:应用某个存储(默认第一条),但不会从存储列表中删除;
  • git stash apply stash@{1}:应用第2个存储,但不会从存储列表中删除;
  • git stash pop:恢复修改并将修改应用到当前目录下(默认第一条),存储列表中的这条改动会被删除;
  • git stash pop stash@{1}:恢复第2条改动,并从列表删除;
  • git stash drop stash@{1}:从列表中删除这个存储;
  • git stash clear:删除所有存储的stash;
git pull与fetch.png

相关文章

网友评论

      本文标题:Git(不定期更新)

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