Git导图以及命令汇总

一、git使用详解

 图片使用象话的博客_CSDN博客-Java工具,K8S,Python领域博主博主的,侵权的话请联系我,我会删掉的。

1、使用步骤

2、本地代码与服务器代码的关系

3、git提交代码流程

4、总体示意图

二、Git常用命令

1、git clone

我们需要克隆远程的代码进行编辑,代码服务器比如在file:10.243.140.85/unicenter,使用下面命令可以完成代码复制。

#克隆远端url的数据

  git clone url

#克隆远端url的数据到某个文件夹下

  git clone url 文件夹

其中,git url支持HTTP/HTTPS/network driver/git,还可以扩展

例如:克隆我们共享文件服务器的代码命令如下

    git clone file:10.21.14.22/unicenter

    git clone GitHub - prajnaCat/mmd-web: 狂人日记前端代码仓库课  /skk-web

#从远程url克隆仓库的镜像(经常使用于仓库迁移的第一步)

  git clone --mirror url

2、git status

如果需要确定哪些文件当前处于什么状态,可以使用git status命令。

#显示当前分支,各个文件的状态

git status

3、git branch

一般情况下,我们修改一个Bug或者新加一个需求,都需要创建一个分支,这时就需要用到以下两个命令。

#创建新的分支

  git branch <branch_name> 

#查看远程分支

  git branch -v

#查看所有分支

  git branch -a

#删除本地

  git branch -d branchname

#强制删除本地

  git branch -D branchname

#删除远程分支

  git push origin --delete branchname

4、git checkout

#基于当前分支创建new_branch_name

  git checkout -b <new_branch_name> 

例如:创建一个新的分支a,并且切换到a分支。

  git checkout -b a

相当于如下命令

   git branch a

   git checkout a

#基于branch_name创建new_branch_name

  git checkout -b <new_branch_name> <branch_name> 

#回滚文件或者文件夹,撤销为提交的修改

  git checkout file/folder

#切换到某个commit的状态

  git checkout commitHeader

#基于一个远程分支创建一个本地分支(建议本地分支最好和远程分支同名)

  git checkout -b 本地分支名  远程分支名

5、git add

在我们修改、删除或添加了一下文件需要提交时,首先就需要将这些修改过的文件添加到我们的索引库中,git是根据索引库中的内容来进行文件的提交

  git add <file>

  git commit -m “messages to commit”

  git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。

  git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)

  git add -A :是上面两个功能的合集(git add --all的缩写)

如果简单修改了一个文件,可以使用

  git commit -a -m “messages to commit”

等效于

  git add <file>

  git commit -m “messages to commit”

6、git rebase

一般项目开发都是团队性的,假设项目里有几十个人,可能时刻都有人在提交着自己的修改内容至master,当你提交自己的修改时,别人已经提交了很多内容,这时你的代码已经与master不一致,就需要再次rebase到最新的master,解决相关冲突,然后再进行提交。

#将master rebase到branch

  git rebase master <branch> 

7、git init

要对现有的某个项目用Git进行管理,我们可以执行下面命令,在项目所在目录执行命令之后,会出现一个名为.git的目录,存放了Git所需的数据和资源。

#初始化,刚开始创建一个项目时使用此命令

  git init 

#创建一个新的项目repo

  git init –bare

8、git merge

#将branch分支合并到当前分支

  git merge <branch> 

比如, 在主线master上,合并分支username的功能,命令如下:

# 确保此时在主线master上, 可以使用git checkout master到主线

  git merge username

比如, 在主线master上,合并远程origin主线master上的commits,命令如下:

# 确保此时在主线master上,并且已经执行git fetch origin master

  git merge origin/master

# 回滚合并merge,适用于merge之后还未执行 (git add .)如果执行了add则使用 reset命令

  git merge --abort

9、git remote

#连接远程仓库配合git  init使用

  git remote add origin https://github.com/yourName/repositoryname.git

#列出远程分支名称

  git remote  -v 

#列出远程分支的详细信息

  git remote -v

#给本地项目设置新的git地址(经常使用于仓库迁移,修改仓库镜像的git地址)

  git remote set-url --push origin https://github.com/yourName/repositoryname.git(新地址)

10、git log 

#查看文件的提交记录

  git log

#显示提交的日志树

  git log --graph 

如果需要结束日志查看,可以使用 q 退出日志树

11、git diff 

#比较当前文件和暂存区文件之间的差异,也可以用来比较两个branch之间的差异。

  git diff 

#表示比较当前分支和master分支之间的区别。

  git diff master

12、git pull 

#取回远端主机的更新,并合并到当前分支

  git pull 

例如:取回origin主机的master分支,并合并到当前的分支

  git pull origin master

  git pull --rebase <远程> <分支名>

#我们pull远程origin的master分支

  git pull origin master

相当于

  git fetch origin master

  git checkout master

  git rebase origin master

#我们pull 远程origin的master分支,并从origin/master到分支rebase到本地分支operators

  git pull --rebase origin master:operators

相当于

  git fetch origin master

  git checkout operators

  git rebase origin/master

13、git push 

#将本地分支的更新推送到远程主机

  git push <remote> <branch>

#将本地的master分支推送到orign主机的master分支

  git push orign master

14、git fetch 

#从远程获取最新版本的commits到本地,不会自动merge

  git fetch

#从远程的origin的master主分支下载最新的commits到origin/master分支上

  git fetch origin master

此时,远程的代码并未合并到本地的master分支上。如果需要合并,请参见git merge命令。

然后比较本地的master分支和origin/master分支的差别

  git log -p master origin/master

15、git config

Git还可以根据个人喜好,配置快捷键别名,方便键入,如下:

#配置用户名

  git config –global user.name “Xiaojian Xu”

#配置邮箱

  git config –global user.email “Xiaojian.Xu@fisglobal.com”

#配置co 为checkout命令

  git config --global alias.co checkout

#配置br为branch命令
  git config --global alias.br branch

#配置ci为commit命令
  git config --global alias.ci commit

#配置st为status命令
  git config --global alias.st status

#配置s为status命令

  git config --global alias.s status

#查看配置信息

  git config --list

#重新设置git的用户名和密码

(当你的密码修改过,在出现remote: HTTP Basic: Access denied fatal: Authentication failed for错误时,使用下面的命令,相当于清空以前的设置或者使用记录,使用现在录入的)

  git config --system --unset credential.helper
 

16、git cherry-pick

#把某次提交拉取到当前分支上,这个命令是“本地特性”,

遇到报错 fatal: bad object  commit_ID,表明当前分支不知道这次提交,

需要先执行 git pull,来让当前分支知道其他分支后来的提交。

git cherry-pick <commit_ID> 

17、git revert

#把某次已经push的一次提交(commit_ID)回滚掉,然后 git push到远程分支。

git revert commit_ID     

git push

注意:git revert commit_ID 是在本地分支操作的,并不会在影响远程分支,所以需要 git push 推送到远程分支上。

18、git stash

#把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续的恢复(暂存之后,会删除本地的被暂存的内容)

  git stash save 'stash名称';

#恢复之前缓存的到工作目录 (会删除 git stash保存的那一份)

  git stash pop

#缓存堆栈中的stash多次应用到工作目录中,但并不删除git stash保存的那一份

  git stash apply stash{n}


#删除stash
git stash drop stash{0}

19、git tag

#在本地打标签,如果需要推到远程使用:git push origin version1.0

  git tag version1.0

#查看所有的标签

  git tag -l

#删除本地的tag

  git tag -d tagname

#删除远程的tag

  git push origin :refs/tags/tagname

三、场景处理

1、放弃本地文件的修改

1.1、未使用git add 缓存代码

#使用git checkout -- filename来用远程覆盖本地的修改

git checkout --filename

-----------------------------------------------------------------------------------------不关注我“象话”吗?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

象话

打赏犹如太阳穴的枪口

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

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

打赏作者

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

抵扣说明:

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

余额充值