Git日常使用及规范

团队中使用git的操作说明

说明使用git的流程, 以及相关问题
给出使用流程图

git的一些日常使用

撤销工作区所有的修改
//不会影响untracked file
$ git checkout .
修改已经提交的author信息

使用rebase命令

//此处n代表重塑(类似重新提交)前几个版本
git rebase -i HEAD~n
//但是上一步时, 如果工作区存在未提交的内容则可以使用git stash暂存工作区内容
git stash
//取出stash内容
git stash pop
//rebase后会出现一个文件, 用于修改git接下来进行的操作, 这里可以修改成pick,edit等方式, 修改完后保存确定.
pick表示会直接commit
edit表示要修改这次提交
//完成修改author的任务.
git commit --amend --author "xw <aa.hbl@gmail.com>"
//完成修改操作文件后, 使用continue让git继续操作
git rebase --continue
修改name/email等config信息
//查看git全局配置信息
git config --list
//设置指定git配置信息
git config --global user.name ""
git config --global user.email ""
查看所有的分支, 包括远程分支
git branch -av
拉取指定的远程分支
 git fetch origin master
合并指定的远程分支
 git merge origin/master
git add -u/git add -A
//提交所有的变化, 不包括删除文件
git add .
//提交所有被删除和修改的文件
git add -u == git add --update
//提交所有的文件, 包括删除, 是上面两者的集合
git add -A == git add --all

git version 2.x:
image.png

更新远程仓库的单个文件/指定文件

先更新本地的远程仓库origin/master, 然后从本地origin拉取指定文件回来(git checkout origin/master – filename)

查看stash中的内容

git stash show

stash的相关操作
//存放内容到stash中
$ git stash
//取出stash中的内容
$ git stash pop
//暂存未跟踪或忽略的文件, 使用-u或者--include-untracked可以stash untracked文件
//使用-a或者--all命令可以stash当前目录下的所有修改
//将stash应用到当前工作目录, 但并不清除stash中内容
$ git stash apply
//清除所有stash
$ git stash clear
//清除指定的stash, xxx表示指定的stash, 可以通过list查看
$ git stash drop xxx
//查看所有的stash
$ git stash list
//保存时添加备注
$ git stash save "完成user接口"
stash使用技巧

add 那些你不想备份的文件(例如: git add file1.js, file2.js)
调用 git stash –keep-index。只会备份那些没有被add的文件。
调用 git reset 取消已经add的文件的备份,继续自己的工作。

//暂存 未add文件/untrack文件/, -u 表示暂存untrack.
$ git stash save '备注' --keep-index -u
生成新的ssh key
//会覆盖之前的key, 也可以使用指定生成key名, 来覆盖.
$ cd ~/.ssh/
$ ssh-keygen -t rsa -C "xxxx@email.com"
配置github多账号使用
//生成key, 这里-f是指定生成key的路径, 如果不指定也想给生成文件取名(不使用默认名称), 可以在此命令后, 第一个提示进行输入.
$ ssh-keygen -t rsa -C "xxxx@email.com" -f .ssh/id_rsa_xxx
//将key添加到ssh agent上, 因为不是使用默认的方式, 所以需要使用让agent来确定使用哪一个key
$ ssh-add .ssh/id_rsa_xxx
//如果上一步添加失败, 报错Could not open a connection to your authentication agent, 则执行如下命令
$ ssh-agent bash
//创建config文件, 如果存在则跳过此步骤
$ touch config
//编辑config文件, 输入内容如下, 指定哪个host使用哪个公钥
		# 默认的 github 用户
		Host github.com
		port 22​
		 HostName github.com
		 User git
		 IdentityFile ~/.ssh/id_rsa
		 
		# 使用 id_rsa_2 验证的 github 别名
		Host blog.github
		port 22​​
		 HostName github.com
		 User git
		 IdentityFile ~/.ssh/id_rsa_blog_github
//测试是否成功
$ ssh -T blog.github
恢复工作区删除的文件

工作区就是所有当前操作/浏览的文件的地方, 未add的文件只会存在于工作区.

//指定文件
$ git checkout -- <file>
//所有文件
$ git ls-files -d | xargs -i git checkout {}
//或者
$ git ls-files -d | xargs git checkout --
恢复暂存区删除的文件

暂存区里变动的文件, 就是只经过add, 没有commit的文件.

//HEAD表示当前指针指向的本地仓库记录
$ git reset HEAD <file>
恢复工作区所有被修改的文件
//checkout只适用于未提交到暂存区的文件
$ git ls-files -m | xargs git checkout --
查看某个文件的详细修改记录
$ git log -p <files>
删除git关联(本地代码)
//删除.git文件后, 目录下使用git命令还是有效, 证明能识别此处还是仓库目录, 只能下一步了.
//一步到位
$ find . -name ".git" | xargs rm -Rf
推送项目到新建的gitlab上
//初始化本地项目为git项目
$ git init
//将本地项目进行本地提交
//添加远程分支关联
$ git remote add origin ssh:xxxxx.git
//如果添加有误, 移除远程分支关联
$ git remote remove origin
//push代码到remote上
$ git push -u origin --all
//push所有标签到remote上
$ git push -u origin --tags
push -u 的用法
//将当前分支推到origin上
$ git push origin
//如果当前分支与多个主机有关联, 则需要-u来指定, 指定之后就可以只使用: git push了.
$ git push -u origin master
切换其他远程分支
//此处dev是指本地创建的分支, origin/dev是指远程分支.
$ git checkout -b dev origin/dev

一些概念

HEAD

表示活跃分支的游标, 你现在在哪儿, 它就指向哪儿.

FETCH_HEAD

表示一个版本链接, 记录在本地文件中, 指向目前从远程仓库中取下来分支的末端(最新)版本.

origin/HEAD -> origin/master

HEAD代表一个头指针, 指向的分支代表此分支为默认分支.
也可以删除它: git remote set-head origin -d

超前ahead, 落后behind

commit了代码, 但是没有push, 就是ahead.
remote上有更新, 但是没有pull, 就是behind.

staged, unstaged

staged表示暂存的文件
unstaged表示未暂存的文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值