git常用命令

1、初始化git版本库(git三部曲第一步):
     git init demo :在当前目录下自动创建了一个demo文件夹,并在demo文件夹下创建了一个git版本库.git

2、增加文件到版本库中(git三部曲第二步):
    git add filename:将filename文件添加到版本库中

3、提交当前修改到版本库中(git三部曲第三步):
    git commit -m "initialized.":-m参数设置提交说明,说明内容为"initialized."

4、查看日志:
    git log
    git log --pretty=fuller:全日志方式输出
    git log --pretty=online:精简日志方式输出
    git log --stat:包含被修改的文件列表信息

5、查看状态:
    git status:可以清晰的看到工程相对于版本库的文件修改情况;
    git status -s:精简格式的状态输出;

6、 恢复工作区不必要的修改 :
    git clean -fd:工作区还原到和暂存区一致;  
    git checkout:汇总显示(只是显示,不做修改)工作区、暂存区与HEAD的差异; 
    git checkout .:别忘了这个命令的checkout后面还有一个“.”;这个命令会取消本地工作区中所有的修改(相对于暂存区),但是要注意的是它不会删除工作区中相对于暂存区中新建的文件或者目录。
    git checkout -- filename:用暂存区中的filename文件来覆盖工作区中的filename文件。
    git checkout branch -- filename:维持HEAD的指向不变。用branch所指向的提交中的filename替换暂存区和工作区相应的文件。注意这个命令会将暂存区和工作区中的filename文件都覆盖。
    git checkout branch:检出branch分支。执行这个命令之后会将HEAD执行branch分支,并将用branch分支中的内容更新暂存区和工作区;
    git checkout <commmit_id>:  commmit_id要用实际的ID值来代替,执行这个命令后HEAD指向commmit_id,如果在之后的状态下想保留其修改和提交,可以新建一个分支,方法如下:
    git checkout -b new_branch_name:新建new_branch_name分支;
    要查看目前git版本库中的所有分支,使用如下命令:
    git branch -v
    通过合并操作命令给分支打补丁:
    git merge <commmit_id>

8、建立里程碑:
    里程碑有3种不同形式,包括:轻量级里程碑、带注释的里程碑、带签名的里程碑。
    我们先来看简单的方式:
    建立一个轻量级里程碑命令如下:
    git tag tagname
    建立里程碑之后在查看历史信息的时候可以加上--decorate参数同时显示里程碑信息
    git log --decorate
    根据里程碑信息还可以将文件进行归档,比如基于里程碑v1.0建立归档,并且为归档中的文件
添加目录前缀1.0的命令如下:
    git archive --format-tar --prefix=1.0/ v1.0 | gzip > foo-1.0.tar.gz

9、查看工程中的文件和版本库中的文件的差异:
    git diff:会列出每个文件中具体的内容差异(工程文件和暂存区之间);
    git diff HEAD:与HEAD(当前版本库的头指针)或master分支进行比较,输出差异;这个一般在执行了git add filename之后执行git diff可能没有差异输出,但是执行git diff HEAD还是有差异输出的(工程文件和版本库之间);
    git diff --cached(或--staged):(暂存区和版本库之间);

10、查看时间戳
    ls --full-time .git/index
    
    先执行git status -s
    再执行 git --full-time .git/index

11、保存当前工作进度
    git stash
12、恢复进度
    git stash pop
13、研究对像ID
    git cat-file -t 16进制数
      git cat-file -p 16进制数

14、查看提交的跟踪链
    git log --pretty=raw --graph 16进制数前几位即可

15、查看最早提交的ID 是在版本库中
    git log --graph --oneline

    重置到最早的一次提交  ( 是在版本库中, 使用重置命令很危险,会彻底地丢弃历史,不能重新恢复,慎用,最好不用)
    git reset --hard 最早一次的ID 7位数

16、恢复暂存区某一个文件到上一次提交的状态
    git reset HEAD fiel.c
    
    执行git reset HEAD 命令时,暂存区的目录树会重写,会被Master分支指向的目录树所替换,但是工作区不受影响
    
    执行git rm --cached <file>命令时,<>为可选项,会直接从暂存区删除文件,工作区则不做出任何改变

    git ls-tree -l HEAD 
    -l参数可以显示文件大小,

17、查找当前版本库中的HEAD master refs/heads/master
    gind .git -name HEAD -o -name master

18、reflog挽救错误的重置
    查看更改日志的设置
    git config core.logallrefupdates
    
    查看master分支的日志文件
    tail -5 .git/logs/refs/heads/master
    
    挽救命令
    git reflog show master |  head -5  
    其中参数-5是显示5条的意思

    重置master为两次之前的值
    git reset --hard master@{2}

    查看提交历史
    git log --oneline    

19、reset 命令
    git reset --soft HEAD^ 
    工作区和暂存区不变,但引用向前回退一次,当对最新提交的说明或提交的更改不满意时,撤销最新的提交以便重新提交
    git reset HEAD filename
    仅将文件Filename的改动撤出暂存区,暂存区中其它的文件不改变,相当于对命令git add filename的反向操作

    git reset HEAD^
    工作区不改变,便是暂存区会回退到上一次提交之前,引用也会回退一次
    
    git reset --mixed HEAD^
    同上
    
    git reset --hard HEAD^
    彻底撤销最近的提交,引用回退到前一次,而且工作区和暂存工会回退到上一次提交的状态,自上一次以后的提交全部丢失


 20、删除文件
  1.在本地用rm file.c -rf
  2. 执行命令git add -u 执行完成后,可以用 git status -s查看状态
  3.执行提交命令git commit -m " ", 将文件删除

  21、恢复删除的文件
    首先查看历史提交
        git cat-file -p HEAD^:filename
    
    1.如果要恢复删除的文件,如下三个命令都可以用
        a.    git cat-file -p HEAD~1:filename > filename
        b    git show HEAD~1:filename > filename
        c.     git checkout HEAD~1 -- filename
    
    2.执行 git add -A 将恢复过来的文件添加回暂存区,再用git status -s 查看状态
    
    3.执行提交操作。执行完成后,文件将恢复
        git commit -m ""

    22、移动文件_改名
改名有两种方法
第一种方法
    1.执行  git mv old_filename new_filename,执行完成后,用git status查看状态
    2.提交git commit -m ""  就完成了

第二种法
    1.执行mv old_filename new_filename  执行完成后用gti status -s查看状态
    2.执行git add -A,执行完成后用gti status 查看状态
    3.执行提交git commit -m "" 就完成了

    如果想恢复改名的文件  

    1.先撤销之前测试文件移动的提交    
        git reset --hard HEAD^
    2.撤销之后,文件又回来了
        git status -s
        git ls-files


23、选择性添加
    git add -i

    $ git add -i
           staged     unstaged path


*** Commands ***
  1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked
  5: [p]atch      6: [d]iff       7: [q]uit       8: [h]elp
What now> 

24、查看历史提交次数
    git rev-list HEAD | wc -l

分支的切换:

使用命令:git checkout[branch_name]

此命令可以切换分支,注意所有的stage和unstage状态都会被切一起切换,注意先用stash保存。


分支的合并:

这个操作是比较容易引起问题的,请尽量保证本地worktree比较干净再来做这一操作。有如下操作方式

a.整个分支合并

使用命令:git merge [branch_name]

使用这个命令来将branch_name指定的branch上的改动,合并到当前所在的branch。合并的轨迹可以在gitk中明显的看到。

合并两个分支,最容易产生的问题就是代码的冲突。git会提示冲突的文件,可以使用git status查看,提示unmerged。

用熟悉的编辑工具打开有冲突的文件,可以看到由<<<<<<<和======中间的,是目前所在branch的修改。========和>>>>>>>之间的,是要合并的修改。选择自己需要的部分,并移除<=>等符号,保存。

随后可以使用git add添加到stage状态,并提交即可。这样的提交因为有merge的动作在前,与普通提交是不同的,从gitk上可以看出有两条线的merge。

另外一点需要注意的是,即使不修改<=>中间的内容,也可以git add到stage,git会认为你已经merge好了。所以请一定记得首先做好所有conflict的处理!

另外一个冲突的解决方法是执行git mergetool,可以使用比如kdiff3等3路merge工具来完成merge,喜欢用图形工具的会方便一些。

b.合并单独的change

使用命令:git cherry-pick [change's SHA1]

git cherry-pick可以手工选择一些改动来集成到当前分支,是最灵活的方式。使用change的SHA1前4位即可。遇到冲突,和merge的解决方法一样。需要注意的是cherry-pick并不带来分支轨迹的变化。


分支的删除:

使用命令:git branch -d/-D

-d是删除已经合并过的branch,-D是直接删除 


    

  • 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、付费专栏及课程。

余额充值