常用的一些git指令

来源:互联网 发布:淘宝 小电影 编辑:程序博客网 时间:2024/05/24 04:28
一、上传代码到远程仓库
  1. 将一个本地目录变成本地仓库:git init
  2. 关联本地仓库到远程仓库:git remote add origin https://github.com/用户名/仓库名
  3. 将项目所有文件添加到仓库中(工作区---》版本库的暂存区):git add .
  4. 将add的文件commit到仓库(版本库的暂存区---》远程仓库):git commit -m "注释语句"
  5. commit之后,以及push之前要先进行pull操作:git pull --rebase origin master
  6. 上传代码到远程仓库:git push -u origin master
  7. 版本控制:使用log reflog reset可以在各个版本之间自由移动。
    GIT中的版本回退速度很快,本质上是因为GIT中内部有HEAD指针,当回退版本的时候,只是单纯的移动指针,所以速度很快。 


关于为什么要先 commit 再 pull 再 push ?答:为了应对多人合并开发的情况,

      1. commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;
      2. pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉
      3. 出现代码覆盖或者丢失的情况:比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3并且推送到远程了,B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的(转自知乎某答案

二、工作区与版本库的暂存区之间的操作
1.丢弃工作区的修改:git checkout -- 文件名(
总之,就是让这个文件回到最近一次git commit或git add时的状态
2.删除文件
  1. 删除工作区文件:rm 文件名/直接手动删除
  2. 删错了,想要恢复(用版本库里的版本替换工作区版本,一键还原):git checkout -- 文件名
  3. 从版本库里删除文件:git rm 文件名
三、远程仓库克隆
git clone git@github.com:用户名/仓库名
四、分支管理
1.创建分支
git checkout -b 新分支名(-b表示创建并切换
或者:
git branch 新分支名  先创建
git checkout 新分支名  后切换
2.列出所有分支
git branch 
3.把其它分支合并到master
git merge 其它分支名
4.删除分支
git branch -d 分支名
5.查看冲突情况(需要手动解决冲突)
git status
原创粉丝点击