python git相关总结

一、判断文件内容改变:

例子:hashlib.md5(open(name_path[m]).read().encode('utf-8')).hexdigest()

在进行md5哈希运算前,需要对数据进行编码。在不同版本的Python下结果不同:

# python2
pwd = "xxx" + chr(163) + "fj"
checkcode = hashlib.md5(pwd).hexdigest()
print checkcode # ea25a328180680aab82b2ef8c456b4ce

# python 3先不解码,直接去编码
import hashlib
pwd = "xxx" + chr(163) + "fj"
checkcode = hashlib.md5(pwd).hexdigest()
print(checkcode)
# 运行时报错 Traceback (most recent call last):
#  File "D:/pyProjects/gittest/scheduled_tasks/test.py", line 4, in <module>
#    checkcode = hashlib.md5(pwd).hexdigest()
# TypeError: Unicode-objects must be encoded before hashing

# python3 先解码,再编码
pwd = "xxx" + chr(163) + "fj"
checkcode = hashlib.md5(pwd.encode("utf-8")).hexdigest()
print(checkcode) # b517e074034d1913b706829a1b9d1b67

扩展:
如果是中文字符,在Python中是以unicode存在的,在hash前要求进行编码转换,是因为同一个字符串在不同的编码体系下有不同的值,为确保不发生歧义必须要进行一次显性转换。先解码,再在进行md5哈希运算前,对数据进行编码。
hashlib.md5(data.encode("gb2312"))

二、git撤销与回滚

  1. git commit前,未添加到暂存区的撤销(没有git add)
    git checkout -- filename
    想将多个文件一次性撤销可以用
    git checkout -- .
  2. git commit前,添加到暂存区的撤销(git add 以后)
    git reset HEAD filename
    想一次性将所有暂存区文件撤销回来
    git reset HEAD
    3.git commit后
    (1)git revert commitid (撤销这一次提交操作,这次操作前后的提交记录都会保留)
    然后推送到远端更新远程仓库代码,就撤销回来了。
    注意revert奇数次生效,偶数次又回到之前的修改状态。比如一个文件内容是a,那么修改为ab,revert后文件变成了a,如果再revert后文件又还原成ab了。
    (2)想回到之前某个版本,可以用reset命令,可以回退到某次提交,那该提交之后的提交都会回滚
    git reset --hard commit_id
    --hard 强制将缓存区和工作目录都同步到你指定的提交/分支

三、Git保留本地Log文件夹,删除远端的

git rm - r --cached 要删除的文件夹名称

image.png

四、python直接使用git库

方式之一:通过git实例使用git命令

from git import Repo

repo = Repo("./")
git = repo.git
# 如使用 git fetch --all
# 如 使用 git reset --hard origin/master
print(git.fetch('--all'))
git.reset('--hard', 'origin')

五、format格式化函数:

通过 {} 和 : 来代替以前的 %

add= ['1.py', '2.py', '4.py']
then = ['3.py']
clear= {'one':'9.py','two':'8.py'}
print('{one}--{two}'.format(**clear))
print('{0[0]}--{1[0]}'.format(add,then))
# 输出9.py--8.py
# 1.py--3.py

# print('新加了%s' % add)
# print('新加了{}'.format(add))
# 位置参数,引用时第一个引用位置引用add[0]
# print('新加了{}--{}--{}'.format(*add))
#:[填充字符][对齐方式 <^>][宽度]
print('{:*>10}'.format(10))   #输出********10
print('{1:~^6}'.format(10,8))   #~~8~~~

# eval('os.system("rm ddd.py")')  #执行一个字符串表达式,并返回表达式的值
print(eval('[1,2,3]'))  #也可以还原字符串里面内容的原本类型和内容
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354