git工作流程及重要指令

概述:

虽然一直在使用git,但是也只会使用简单的指令,下面系统地总结一些指令

配置git

ssh-keygen

cat /home/xxx/.ssh/id_rsa.pub #复制到git上

配置端口

vim ~/.ssh/config 

流程及相关指令:

git clone [url]  :拷贝一个git仓库到本地,让自己能够查看及修改

默认情况下,git会根据url所指示的项目的名称取创建本地项目路径, 如果想要不一样的名字,可以在命令后加上想要的名称

git add    可以将某个或者几个文件添加到缓存

 

git status  :以查看在上次提交之后是否有修改 

加上-s参数,以获得简短的结果输出 

 

尚未缓存的改动:git diff

查看已缓存的改动: git diff --cached

查看已缓存的与未缓存的所有改动:git diff HEAD

显示摘要而非整个 diff:git diff --stat

git commit   将 缓存区内容提交到仓库中

git reset HEAD   取消已缓存的内容 

git rm  <file> 从git中移除某个文件

git rm --cached <file>  把文件从暂存区域移除,但仍希望保留在当前工作目录中

其他重要指令

1. git checkout/git branch

git checkout: 

   操作文件:放弃单个文件或者某个目录下的修改

   操作分支:切换到某个分支;git branch -b如果分支存在则只切换分支,若不存在,则创建并切换分支

git branch:

  创建分支
2. git merge/git rebase

git rebase:会把你当前分支的 commit 放到公共分支的最后面,所以叫变基。就好像你从公共分支又重新拉出来这个分支一样。
举例:如果你从 master 拉了个feature分支出来,然后你提交了几个 commit,这个时候刚好有人把他开发的东西合并到 master 了,这个时候 master 就比你拉分支的时候多了几个 commit,如果这个时候你 rebase master 的话,就会把你当前的几个 commit,放到那个人 commit 的后面。

git merge:会把公共分支和你当前的commit 合并在一起,形成一个新的 commit 提交

3. git show

4. git cherry-pick

从其他分支复制指定的提交,然后导入到现在的分支

cherry-pick 过程中也是可能会产生冲突的,解决冲突后先 add,然后使用 git cherry-pick --continue
如果想放弃 cherry-pick,使用 git cherry-pick --abort

5. git lfs

git 会对上传文件的大小有限制,如果需要上传100M以上大小的文件,需要使用git lfs

安装

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash

sudo yum install git-lfs
git lfs install

在git add之前,使用track追踪需要上传的大文件

git lfs track "*.png"

6. 删除分支

删除本地分支

git branch -d feature/name  ##-D强制删除

删除远程分支

git push origin --delete feature/name

7. tag

添加tag

git tag -a v1.1 -m "my version v1.1"

提交tag到远程

git push origin v1.1

删除tag

git tag -d v1.1

git push origin :refs/tags/v1.1

使用git可能会遇到以下情景

1. 正常提交代码

git clone

git checkout -b feature/xxx

git add 

git commit *

git push origin feature/xxx

git pull --rebase origin dev

2. 撤销已经推送push到远端仓库的提交信息

 撤销提交信息

 1.git log 查看提交信息

2. git reset --soft 版本号    soft 保留当前工作区,hard撤销工作区修改,谨慎使用

3. git push origin fearture/xxx --force

3. 自己修改的代码不想提交,同时想拉取仓库的最新代码

 git stash

git pull

git stash pop

4.提交代码时遇到冲突 

1. git checkout feature/XXXX && git pull --rebase origin develop

2. 解决冲突

3. 稍微测试一下冲突部分代码(如果没有单元测试)

4. git push -f origin feature/XXXXX

管理员接受PR后

5. git checkout develop && git branch -d feature/XXXX && git push origin :feature/XXXX

 5. 在一个本地分支A上git add commit成功之后,想提交到另外一个分支B

切换到要提交的分支B上

git merge A

6. 查看

 alias glog="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晏九

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值