首页 > 其他 > 详细

Git

时间:2020-12-06 23:36:34      阅读:36      评论:0      收藏:0      [点我收藏+]

Git文件的4种状态


假设一种场景。

  • 若未add可以用 git checkout -- a.txt 变回原样
  • 若add了则直接 git reset 将其返回至Modified状态再执行第一步操作
  • 若commit了就 git reset 上一个版本(要注意要用那种方式)
    • --mixed(默认)处于Modified,已经更改过内容
    • --soft 保留更改处于Modified
    • --hard 不保留所有变更
  • 注意:git reset后,再回到最新版本,内容是回不来的,相当于后面的版本都不存在了(git revert可以)

  • Git --> GitHub/Gitee/GitLab(这些都是远程仓库)

当你第一次git bash的时候,最好是先创建用户名和邮箱,这样提交才知道是谁提交的

  • git config --global user.name xxx
  • git config --global user.email "..."
  • --global只是全局,之后局部的就不用写这个单词了

Git知道这些就够了

  • git init 初始化仓库
  • git status 查看仓库状态信息

- git add <filename>			    加入暂存区

- git add .						             全部加入暂存区

- git commit -m <message>		提交加描述

- git log						                 查看日志

  - git log --pretty=oneline

- git reset <filename>			    暂存区退回

  - git reset --hard HEAD^ 		回退至上一次提交
  - git reset --hard HEAD~n       回退至n(都是相对于自己现在所处的版本)

  此时若你再git log,看不到未来,只能看到之前commit的

  若你想看全部记录,就可以通过

  - git reflog

Alias


- git reset <id>				    切换为某一个版本
	- --hard                                                    不保留所有变更
	- --soft                                                     保留变更且变更内容处于Staged
	- --mixed(默认)                                 保留变更且变更内容处于Modified

分支

分支,就是创建一个影分身,之后两者互不干扰,独自修改并不影响对方

- git branch <name> 创建分支
- git checkout -b <name><id>		创建分支并转至新创建的分支,若id不写,就是默认以最近的commit为基准来创建分支
- git checkout <name>                      切换至某分支
- git branch                                       查看所有分支
- git diff                                              确定冲突在哪儿
- git merge <name>                           分支合并
- git branch -D <name>                     删除分支
- git push origin --delete xxx              删除远程分支

远程仓库

github中可以创建一个仓库,大家就可以一起关联这个仓库,来进行文件的修改等(也可以使用国内的gitee)

这就和SVN中创建仓库一样

1. git remote add origin <url>                将本地文件推送至远程仓库
2. git push origin master                           提交

此时另一个用户:

1. git clone <url> <新项目名>                将远程仓库的内容复制到本地
2. git push origin master                           提交

若用户想用最新版的

1. git pull origin master

  • git push -set-upstream origin xxx 上流分支 远程仓库 分支名 当你自己创建一个分支的时候通过该指令可以在远程仓库同时创建一个新分支
    • 如果git pull以后是可以直接转至新的分支的,只是git branch看不到而已
  • git fetch 拉取远程仓库信息 其实完全可以不用这个,git pull就行了

git rebase


总结

回忆SVN的操作。在我这儿有一个库,大家都关联了。每次操作完后,进行一次commit,然后大家只要update一下就能获取到新的内容,感觉更便捷一些。就这么两步操作。而Git:

  • 提交你自己修改的内容步骤:加入缓存区、提交,到远程仓库需要push 这相当于commit
  • 若需要回退到前面的版本,git reset
  • 第一次从远程仓库复制,git clone,第一次移动到远程仓库,git remote
  • git pull 这相当于update

经常会遇到一些很奇怪的错误,感觉就都是因为没有git pull导致,然而经常不能直接git pull,有时候他可能没有确定好远程的分支或者什么,所以你可能要写git pull origin master这样子,git push也是有时候需要这么写或者写上流分支,这样就不会出错了


IDEA Git

  1. 在VCS中有个Get From Version Controll...(每个版本的都不大一样),然后直接将克隆的地址输入,就可以实现克隆

  2. settings-->version control-->git

  • view-->commit 里面有local changes 可以查看自己都修改了哪些(IDEA2020)

  • 关联好后,底部就会有git,可以点开

  • 每次有修改在local changes里都可以进行commit

    • push,右键项目Git-->Repository
  • 如果你已经修改了一些文件,又想要创建新分支,可以先shelve changes,切换至新分支后,再unsheleve...修改的内容就可以变到新分支里了

GitHub

  • fork别人的仓库到自己的仓库中
    • 可以直接在github中进行简单更改
    • 然后pull requests,提交给原作者
  • clone复制到本地,push
  • 在GitHub发起pr,若作者觉得你更改的可以,就会将你发起的pr进行合并,若要你修改,你重新push新内容即可,pr只需要发一次

为什么我用gitee,每次提交都不需要输入帐号密码呢?

Git

原文:https://www.cnblogs.com/lwxx/p/14094890.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!