git常用命令

首先理解几个概念:

    1.工作区在当前仓库中,新增,更改,删除文件这些动作,都发生在工作区里面。
    2.暂存区(stage/index)在版本库.git目录下,有一个index文件。它实际上就是一个包含文件索引的目录树,像是一个虚拟的工作区。在这个虚拟工作区的目录树中,记录了文件名、文件的状态信息(时间戳、文件长度等),文件的内容并不存储其中,而是保存在Git对象库(.git/objects)中,文件索引建立了文件和对象库中对象实体之间的对应。如果当前仓库,有文件更新,并且使用git add命令,那么这些更新就会出现在暂存区中。
   3.版本库: 当前仓库下,如果没有任何的提交,那么版本库就是对应上次提交后的内容。"HEAD" 实际是指向master分支的一个“游标”。

当对工作区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
 
一.  git配置
1.配置用户名  git config --global user.name "ternence" 
2.配置邮箱 git config --global user.email ternence@leomaster.com
3.配置编辑器 git config --global core.editor emacs,缺省情况下会使用vi编辑器
4.获取所有设置 git config --list
5.获取帮助 git help
二.初始化
1.如果已有一个远程的git版本库,克隆一份即可  git clone [url]
2.当有了工作记录,可以先进入工作目录,初始化git仓库 git init ,添加文件 git add .,之后将本地代码添加到远程服务器中, git  remote  add  origin  git://github.com/someone/another_project.git
 
三.仓库
    1.查看远程仓库 git remote -v
    2.添加远程仓库 git remote add [name] [url]
    3.删除远程仓库 git remote rm [name]
    4.修改远程仓库 git remote set-url --push [name] [newUrl]
    5.拉取远程仓库git pull [remoteName] [localBranchName]
    6.推送远程仓库git push [remoteName] [localBranchName]
    7.查看远程服务器仓库状态git remote show origin
 
四.分支
    1.新建分支   git branch branchName
    2.切换分支   git checkout branchName
    3.查看本地分支   git branch
    4.查看远程分支   git branch -r
    5.查看所有分支   git branch -a
    6.删除本地分支   git branch -d branchName(强制删除用-D)
    7.删除远程分支   git push origin :branchName
    8.合并分支  git merge branchName
    9.从主分支master创建branch_1.0分支   git branch branch_1.0 master
   10.将分支branch_1.0重命名为branch_2.0   git branch –m branch_1.0 branch_2.0
 
五.提交更改        
1.添加文件到暂存区   git add fileName
2.添加所有文件   git add .
3.提交更改    git commit -am “”
4.拉取服务器代码 git pull
git pull <远程主机名> <远程分支名>:<本地分支名>
取回origin主机的next分支与本地master分支合并   git pull origin next:master
取回origin主机的next分支与本地next分支合并    git pull origin next
git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也可以手动建立追踪关系,指定master分支追踪next分支:git branch --set-upstream master origin/next。如果当前分支与远程分支存在追踪关系,可以省略远程分支名:git pull origin。如果当前分支只有一个追踪分支,则主机名也可以省略:git pull
 
5.本地代码提交到服务器 git push
git push <远程主机名>  <本地分支名>:<远程分支名>
git push origin master:develop_1.0 将本地master代码推送到远程origin仓库的develop_1.0分支
将本地master分支代码推送到与之存在追踪关系的远程分支 git push origin master,如果远程没有master分支,master分支会被创建。
省略本地分支,相当于删除指定远程分支,相当于推送一个空的本地分支到远程分支git push origin :master.
如果当前分支与远程分支存在追踪关系,则git push origin即可,如果当前分支只有一个追踪分支,可以省略主机名: git push 。
如果当前分支与多个主机存在追踪关系,则也可以指定一个默认主机,git push –u origin master将本地master分支推送到origin主机,并指定origin为默认主机。
git push 只会推送当前分支,即simple方式,默认为simple方式。matching模式会推送所有有对应远程分支的本地分支,可以自己更改模式: git config --global push.default matching/git config --global push.default simple.也可以不管远程有无对应分支,把本地的所有分支都推送到远程分支:git push –all origin
6.查看提交记录    git log
7.查看提交的细节    git show cbe1249b140dad24b2c35b15cc7e26a6f02d2277
7.查看文件状态    git status
8.删除一个文件    git rm filename
9.比较工作区和暂存区的差别    git diff
10.比较暂存区与版本库之间的差异    git diff --cached/git diff --staged
11.比较两次提交提交之间的差异    git diff tag1 tag2
12.比较两个分支之间的差异    git diff branch1 branch2
13.比较工作区和版本库的差异    git diff HEAD
 
六.回退
        这部分内容理解起来不是很容易,我只是列出了我们工作中可能会遇到的几个场景,几个常用的命令,想要深入理解的话自己再找找资料,使用的时候也要慎重。
1.将最近的一次提交抹除掉,git reset --hard HEAD~1(工作区,暂存区,版本库都没了)
2.将最近的一次commit回退到工作区git reset --soft HEAD~1(暂存区和工作区中的内容不作任何改变,仅仅把HEAD指向<commit>。这个模式的效果是,执行完毕后,自从<commit>以来的所有改变都会显示在git status的"Changes to be committed")
3.回滚add操作:
场景:编辑了一些文件,执行了git add。但此时需要你pull,则可以使用git reset。这个命令只是撤销了git add操作,但你原来编辑的东西都还在工作区。
4.回滚最近一次commit:
场景:commit之后发现没有提交完整,比如没有执行添加操作,图片没有添加进去,或者comment写的不好想改一下,则可以使用git reset --soft HEAD^.HEAD^指向HEAD之前最近的一次commit
5.回滚最近几次commit:
场景:提交了一些commit,但发现这些提交还不是很成熟,不能push到当前分支,希望新开一个分支继续工作,则可以使用git branch improvement在当前分支的基础上新建优化分支,然后使用 git reset --hard HEAD~3回滚优化分支上的最近三次提交。
6.永久删除最后几个commit:
git reset --hard HEAD~3
7.回滚merge和pull操作:
场景:pull下来一些更新,但是产生了很多冲突,暂时不想去解决这些冲突,想回退回去。则可以使用git reset --hard 以清除暂存区和工作区被破坏的东西。
Pull下来并merger后发现此时merger时机不对,想要回退回去,则可以使用git reset --hard  ORIG_HEAD.但这样会清空你的工作区,尚未add的改变会丢失,使用git reset --merge ORIG_HEAD命令可以避免这个问题。
8.工作被中断:
场景:你正在develop分支工作,突然间有一个bug需要在master分支修复,则可以先git commit,切换到master分支,解bug,解完后切换到develop分支,使用git reset --soft HEAD^和git reset两个命令帮你回到之前的状态。
9.reset单独一个文件:
场景:你已经添加了一个文件,之后又不打算把这个文件提交,使用git reset text.h即可
10.保留工作区并丢失一些之前的commit:
场景:你正在master分支编辑一些文件,并且已经提交,但你发现你这些东西应该在develop分支,则可以先commit,切换到develop分支,执行git reset --keep tag命令,可以把tag之后的commit清除掉,但不会改变工作区。(tag可以使用git log找到)
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Git常用命令大全: Git是现代化的版本控制系统,常被用于软件开发,协作和管理。它允许在开发过程中创建和管理不同的版本,跟踪文件的更改,以及支持团队合作。Python则是一种广泛应用于开发Web应用程序以及数据科学和人工智能领域的高级编程语言。在使用Git时,Python的代码可以与Git进行集成。这里是Python Git常用命令的大全: 1. git init:初始化一个新的 Git 仓库。 2. git clone:从现有的 Git 仓库克隆项目,可以是本地仓库或远端仓库。 3. git add:将文件添加到 Git 仓库中。git add . 可以添加所有更改。 4. git commit:将所有已添加的文件提交到本地 Git 仓库中。 5. git status:查看当前工作目录中 Git 仓库的状态。 6. git log:查看提交记录。 7. git push:将本地 Git 仓库的更改推送到远端仓库。 8. git pull:将远端 Git 仓库的更改拉到本地仓库。 9. git branch:创建新的分支。 10. git checkout:切换分支。 11. git merge:将一个分支的更改合并到另一个分支。 12. git revert:撤销一个提交。 13. git rebase:将一个分支的修改合并到当前分支。 14. git config:配置 Git。 15. git remote:管理远端仓库。 这是Python Git常用命令的大部分命令,但这并不是全部。在使用Git和Python时,这些命令应该是最为重要的。无论是在个人项目中还是团队合作中,这些命令会让你更加高效地使用Git,并保护你的代码免遭不可挽回地灾难。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值