git基本命令

来源:互联网 发布:java需求分析主要干啥 编辑:程序博客网 时间:2024/06/17 09:37

学习导读

  1. 基本操作命令;
  2. 常用;
  3. 使用注意;
  4. 多人协作;
  5. 总结;

一、基本操作命令:

在每次进行git 提交时,必须先更新代码

  1. git init:初始化,创建一个.git 目录(后面不用加url)
  2. git clone [url]:拷贝一个git仓库到本,可以本地进行修改或者查看
  3. git为每个用户提交时写上name和email
    • git config --global user.name puma
    • git config --global user.email puma@163.com
    • git config --global gui.encoding UTF-8
    • git config -l : 查看当前所有的配置信息
  4. 生成SSH key:
    在git命令行中,输入命令: cd ~/.ssh,来检测是否生成过key,没有生成过 key,会有相关信息提示;
    然后输入命令: ssh-keygen -t rsa -C “邮箱地址”,按下回车键; 然后根据返回的信息,找到.ssh目录下的两个文件;
    将id_rsa.pub中的内容(公钥)复制粘贴到github上;这样就可以下载公司的代码了。[这也就是git的对称加密操作]
  5. git add fileName:将fileName文件添加到缓存
  6. git commit fileName:将fileName文件添加到仓库
  7. git status:查看在你上次的提交之上是否有修改,并显示详细信息
    • git status -s 显示简洁的信息
  8. git diff:显示在上次的提交之上的不同之处
    • git diff --stat:显示摘要而非整个diff
    • git diff > xxx.patch 将diff保存到patch
    • git apply xxx.patch 将diff放回到代码中。如果有冲突则失败
    • patch -p1 < xxx.patch 将diff放回到代码中,可以手动解决冲突
  9. git reset --hard:回退到当前本地仓库的版本,并将所有的修改清除,慎重
  10. git reset 提交信息:回退到某个版本,可以看到该版本之上的修改
  11. git rm fileName:将fileName从缓存区和硬盘中删除(缓存区中的file是git add进去的)
  12. git rm --cached:从缓存区中删除,但是保留在硬盘上
  13. git push:将本地代码同步到服务器上
  14. git pull:同步服务器上的代码到本地;如果有冲突则同步失败
  15. git branch + branchName : 创建本地分支
    git checkout branchName :切换本地分支
    这两条命令相当于:git checkout -b + branchName + 服务器分支名
  16. git branch -a : 查看远程和本地服务器上所有分支
  17. git clean :清除本地没有提交到服务器上的文件
    • -n 显示要删除的文件和目录
    • -f 删除文件
    • -df 删除文件和目录
  18. 合并分支:
    • git checkout 分支名:切换到你要合并到的分支
    • git pull:同步最新的代码
    • git merge 分支名:将该分支名的分支合并到目前所在分支
    • git push:提交到服务器
  19. 打标签:
    • 查看本地tags:git tag -l
    • 本地创建tags:git tag -a <tagname> -m "描述信息"
    • 把本地所有tag推送到远程:git push --tags
    • 删除本地tag: git tag -d <tagname>
    • 删除远程tag:
      1. git push origin --delete tag <tagname>
      2. git push origin 空格:<tagname>
  20. 重命名本地分支:git branch -m 本地分支名 新名称

二、常用命令:

原理:工作区(本地) --> Add 到缓存 --> Commit 到本地库--> push到库

  1. 上传文件到远程库:
    • git pull
    • git add fileName
    • git commit fileName
    • git push
  2. 删除远程库中的file:
    • git pull
    • git rm file
    • git add .
    • git commit .
    • git push
  3. git diff + 版本号:基于该版本上的diff
  4. git reset + 版本号: 回退到之前的某个版本(回退到此版本
    git reset --hard:将该版本之后的所有diff清除
    两个命令配合使用
  5. 创建远程分支:
    • 首先在本地分支上创建一个新的分支:git checkout testOMP
    • 将testOMP推送到远程分支:git push origin testOMP
    • 将本地分支与远程分支关联:git branch --set-upstream-to=origin/<branch> rule-score-dev (为了解决git pull不报错)
  6. git push origin 空格:远程分支名 =》 删除远程分支
  7. [Git] Fatal: cannot do a partial commit during a merge
    解决方法是:
    • 提交全部:git commit -a
    • 如果不想提交全部,那么可以通过添加 -i 选项:git commit file/to/path -i -m "merge"
      上述情况一般出现在解决本地working copy冲突时出现, 本地文件修改(手工merge)完成后,要添加并提交,使得本地版本处于clean的状态.

开发功能分支管理方法:在本地创建分支,开发完成合并到本地的origin,然后push到remote。

三、使用注意:

  1. 回退本地分支:
    不要使用idea自带的git去回退,因为这样会把你的提交直接回滚掉,不留痕迹;可使用如下命令:
    • git log
    • git reset commitId
    • git diff > test.patch(保存本地改变)
    • git reset --hard
  2. git add 提交了不想提交的文件,回退办法:
    • git log
    • git reset "版本号" :可以将add撤销,同时修改文件不会被回退掉
  3. 回退远程分支:
    • git revert commidId (包括将commitId的内容也会回退了
    • 解决冲突
    • 提交代码(add,commit,push)
  4. 基于远程分支的commitId拉取下来到本地仓库,在此commitId上有两次提交,此时如果只想push第一次提交到远程分支上,使用:
    • 记住你本地第二次提交的commitId,方便一会reset到该版本
    • git reset --hard 第一次提交的commitId
    • git push
    • 回到第一次提交的地方:git reset --hard 步骤1记录的commitId

参考博客:回退远程分支

四、多人协作

使用git clone下来的分支,都是在你本地操作的,只有push才会牵扯到远程分支;push前首先要进行pull操作,防止覆盖别人的代码

  1. git clone : 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且你的远程仓库的默认名称是origin;
  2. git push [origin:远程分支名] [master:本地分支名] : 推送本地master到远程origin;(推送前一定要git pull)

五、总结

回退分支小结:
  1. 回退本地分支使用:git reset commitId;
  2. 回退远程分支使用:git revert commitId;
git reset 与 revert的区别:

reset commitId :回退到此版本
revert commitId :回滚最新分支和此版本(包括将此commitId也回滚)

原创粉丝点击