【Git】Git常用命令操作

  1. 生成公钥,添加公钥的参考
一、Git常用命令
  1. git add 目录/*        // 将目录下的文件添加到本地

  2. git reset HEAD 目录         // 将git add 添加到缓存的文件取出来

  3. git pull        // 将master分支下的远程仓库中的git库文件最新版本pull下来,前提是没有修改当前目录下的git文件,若

  4. git pull origin dev-conn        // 将origin dev-conn的分支下的代码pull下载下来

  5. git pull --rebase        // 从暂存区把你之前提交的内容取出来,跟拉下来的代码合并,不会产生Merge的提交;

  6. git commit -m “此次更新的概要”        // 为添加到本地的文件进行注释

  7. git log        // 检查git版本的log

  8. git status        // 检查git版本的状态

  9. git stash        //备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。

  10. git diff        // 检查当前克隆的文件的修改的情况

  11. git format-patch -s ed1ec367528f850f978        // 为当前已经提交到本地的git库文件打patch,可以不用将该文件上传到服务区,然后将该patch直接传给别人,放到相同的git库clone的目录下

  12. git am 0001-sleepace-review.patch        // 将别人发过来的patch,放到相同的git库的目录下之后,执行该命令,即在代码中增加了patch,然后可以通过git log查看是否添加成功

  13. git reset --hard dbb6e410b7123dcf315106f22e6a1ed3a3dc05c0        // 回滚到这个commit号的git代码文件状态下

  14. git remote        // 不带参数,列出已经存在的远程分支

  15. git remote show origin        // 先查看远程地址,origin 是默认的远程版本库名称

  16. git remote -v | --verbose        // 列出详细信息,在每一个名字后面列出其远程url

  17. git remote set-url origin         // 更换远程仓库地址。把更换为新的url地址。
    git remote set-url origin https://github.com/AnkieEatApple/ThinkInJava.git,这里不是初始化git项目的时候使用的,初始化项目请参考下文

  18. git config --global user.name “ankie”        // 配置全局用户名,不加global就是本文件夹内的
    git config --global user.email ankie@163.com        // 配置全局用户邮箱
    git commit --amend --reset-author        // 最后一次配置作者信息
    git config user.name        // 查看当前用户名
    git config user.email        // 查看当前邮箱名

  19. git fetch        //刷新git服务器端的分支,更新本地的现有分支

  20. git reset HEAD^        // 撤销本次本次提交,指提交到本地还没有提交到服务端的commit

  21. 添加ssh-key

    1. cd .ssh        // 打开ssh目录
    2. ssh-keygen        // 生成keygen,一路yes即可
    3. cat id_rsa.pub        // 检查生成的keygen,打开git的SSH-KEYS目录,将生成的key复制粘贴到key中,然后git clone ssh的地址即可
  22. git commit --amend:         修改已经commit的最后一行的commit信息,未push上去的

二、切换分支
  1. git branch        // 检查当前的分支(本地分支)
  2. git branch -a        // 检查当前的所有分支(包括服务器上的)
  3. git branch mybranch        // 创建mybranch分支
  4. git checkout .        // 清理当前的git分支下的代码,一般是无用的代码,直接清空
  5. git checkout mybranch        // 切换到mybranch分支上,这个时候需要把本地的代码提交完,也就是工作空间没有需要提交的代码
  6. git checkout -b mybranch origin/mybranch        // 创建一个新的分支,并切换到该分支,该分支是基于origin/mybranch创建的
  7. git branch -vv        // 本地分支关联(跟踪)的远程分支之间的对应关系,本地分支对应哪个远程分支
  8. git push origin 分支名        // 远程分支就是本地分支push到服务器上,比如master就是一个典型的远程分支
  9. git checkout —track origin/分支名        // 远程分支和本地分支需要区分好,所以,在从服务器上拉取特性分支的时候,需要指定远程分支的名字
  10. git push origin HEAD -u        // 创建完之后本地分支之后,提交该分支到服务器
  11. git push origin <local_branch_name>:<remote_branch_name>        // 提交分支数据到远程服务器,一般当前如果不在该分支时,使用这种方式提交,如果在当前分支名下,也可以直接提交:git push
  12. git branch -d origin:develop        //删除远程分支
  13. git merge v1.0        // 将当前分支和v1.0分支和并,当前遇到的情况是目前分支为master,然后将dev的v1.0分支合并到master上,合并之后需要git push到服务端上
  14. git tag -a 1.0 77e1cc1d6567d26c01 -m “后台可发布版本1”        // 将目前的版本打一个tag,也需要push到服务端git push origin --tags, 方便之后查找,在打完tag之后可以在网站上点发布版本,可以通过git tag上查看当前的tag。
  15. git branch --set-upstream-to=origin/develop develop,本地分支关联远端分支

在原有分支上,向切换到另一个分支上,本地且没有的情况下,不能直接checkout 到想下载的分支,要先在本地创建一个分支,然后在将该分支和远程代码链接,再pull,具体可以参照命令5,直接一步到位。然后再 git pull 下。

若当前查看git branch -a没有查看到所需要的分支,则对当前执行git fetch,含义为获取远程的所有的分支。

三、git pull 情况说明

当同一个代码在不同地方被修改,但是修改不是同一文件的时候,可以通过git pull --rebase来解决直接git pull产生的自动commit的Merge的情况,但在使用git pull --rebase时使用步骤:

  1. 先git add自己的代码,然后git commit -m “本次提交的概要”;
  2. 然后执行git pull --rebase ,有冲突修改冲突,没有冲突直接可查看git log;
  3. 当服务器文件和自己本地文件有冲突时,打开命令行提示的文件,打开该文件,修改文件中head之后的重复的部分,修改过程中,尽量只是修改提示冲突的地方,然后将git status,将发现有冲突的文件已经修改,然后git add,将该文件提交至本地,此次不必在commit,然后git rebase --continue,会自动commit上次提交的内容,此时本地就已经更新完,可以通过git log查看,然后可以通过git push提交该文件到服务器上;
  4. rebase 在拉代码前要确保你本地工作区是干净的,如果你本地修改的内容没完全 commit 或者 stash,就会 rebase 失败;
  5. rebase就是假装你这份代码是从你指定的那个commitment开始改的,git会重新计算diff,然后存进去。主要是为了减少一些垃圾commitment出现在history里面。

在gitlab中clone代码的时候,遇到了HTTP Basic: Access denied,此时在网上搜索的解决问题有存在登陆账号密码错误的情况,直接清空账号密码,还有可能是需要使用Personal Access Tokens来登陆

  1. sudo git config --system --unset credential.helper        // 清空账号密码,再次clone的时候需要重新设置 user.name和 user.email
  2. 生成Personal Access Tokens: 在个人settings里面的Access Tokens里面的Personal Access Tokens选项中,添加自己的账号,选择api选项,然后点击生成create personal access token,将上面的Your New Personal Access Token的密码记住,这个token密码就是clone登陆的账号密码,而不是登陆gitlab的密码。
  3. git pull --force        // 强制拉去代码到本地,一般不推荐使用,如果只是想放弃本地的临时提交,强制将远程仓库的代码覆盖到本地分支。
四、Commit message格式
  1. Commit message 都包括三个部分:Header,Body 和 Footer,格式如下:
  2. git commit -m “fix(设置): 还原设置操作没有等待底层回调结果.”
    • feat:新功能(feature)
      • fix:修补bug
      • modify:修改代码
      • add:追加代码
五、创建新工程关联到Github上的流程
  1. 首先建立工程,先不着急添加项目代码,先和github先关联上,首先应该创建一个README.md文件,里面写个题目就好了
  2. 打开本地项目的根目录,然后执行git命令:git init
  3. 将项目的所有文件添加到仓库中:git add .
    还是的git add . 因为到时候git pull 下来的东西无法运行啊
  4. 将add的文件添加到本地仓库中:git commit -m “first commit”
  5. 去github上创建自己的Repository,点击下面的Create repository,就会进入到类似下面的一个页面,拿到创建的仓库的https地址
  6. 重点【关联】,将github和本地仓库关联起来:git remote add origin https://github.com/hanhailong/CustomRatingBar
  7. 上传github之前,要先pull一下,执行如下命令:git pull origin master
  8. 最后一步,将代码上传到远端的github远程仓库:git push -u origin master
  9. 上面的这个,这里若是想强制将本地的代码直接替代云服务上的代码,一般都是首次提交使用,可以直接使用git push -u origin master -f
  10. 然后开创新的分支,git checkout -b v1.0 origin/master
  11. 提交到服务器,git push origin HEAD -u
  12. 可以查看,本地的分支和服务端的远程分支,git branch -vv
  13. 这里提交push的时候出现failed to push some refs to git的时候,并且使用git push -u origin master不好用的时候,可能是由于当前的本地仓库中没有readme文件,不在本地代码的目录中,这里将使用git pull --rebase origin master,合并代码后,再push即可
六、保存缓存
  1. git stash :将开发的代码保存到缓存区
    在当前代码正在开发中,然后需要跳转到其他分支的情况下,所有的代码不能revert的情况下,需要将当前写的代码保存起来,可以使用git缓存机制
  2. git stash list : 查看缓存起来的所有的代码
  3. git stash pop --index stash@{0} :恢复stash编号为0的缓存的代码,
    git stash pop [–index] [] 恢复工作进度,
    –index 参数:不仅恢复工作区,还恢复暂存区
    指定恢复某一个具体进度。如果没有这个参数,默认恢复最新进度
  4. git stash save “保存进度的注释” : 可以直接保存当前的进度,同时还对该保存的进度添加了注释,相当于git stash + 注释
  5. git stash drop []: 删除某一个进度,默认删除最新进度
  6. git stash clear: 删除所有进度
  7. git stash branch 基于进度创建分支
八、合并本地分支和修改commit的数据
  1. git rebase -i fd76c72cabe88b70481 : 将提交该fd76c72cabe88b70481版本号上面的所有分支合并起来
  2. 进入Vim的界面,此时若是执行出现Could not execute editor错误,需要将vim配置成git的专用编辑器,使用命令为
    git config --global core.editor vim
  3. 在打开的界面中选中不需要的commit,在其前面将pick改为s,然后保存退出,会直接打开另一个界面,打开这个界面后,将不需要的commit语句直接删除掉,然后保存退出,这样就保存成功啦!
  4. git commit --amend : 修改已经提交上本地的commit的语句,在打开的界面修改之后,保存退出即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值