我的学习过程当中所浏览的网页资料,有所参考:html
git checkout -b dev
建立分支dev并切换至dev分支git checkout -f <branch>
强制切换分支git branch
查看本地分支git branch -a
查看远程端的查分支命令git push --set-upstream origin dev
添加本地分支到远程库git reset HEAD
撤销上次全部addgit reset HEAD < filename >
撤销上次filename文件的addgit reset --hard HEAD^
撤销上次的commitgit reset --hard HEAD~n
撤销n次commit,我的感受用的很少git reset --hard < id >
撤销到id版本(后面详细介绍操做)假设已存在master,dev两个分支。
python
git 在第一次拉去代码时会拉取全部分支的代码,可是在后续更新代码的时候只能更新当前分支的代码(目前还不知道)
master分支:
dev分支:
git
在github上dev分支添加新的文件new dev.txt。
若是在master分支下使用 git pull
或者git fetch
拉取最新修改,是不会更新dev分支的。
只有在dev分支拉取才能拉去该分支的最新代码,若是在master(其余)分支拉取,是没法拉取dev分支的最新修改。
github
本地建立的文件夹里 git init
,初始化为git管理的项目,github上建立new repository ,命名能够同样。web
链接上github: git remote add origin https://github.com/fenghen-zr/mybatis-plus-demo
json
git add .
=》 git commit -m "……"
=》git pull --rebase origin master
(使用这个命令是可能github上含有readme文件,须要与本地合并后,才能上传,不然会报错:failed to push some refs to 'https://github.com/fenghen-zr/mybatis-pluemo'
)vim
git push -u origin master
由于如今github上没有文件,因此要使用-u,不然会报错,后面再次提交能够省略。api
git log:查看日志,通常是vim编辑器打开,所用一些命令也是vim编辑器的命令,能够参考这篇文章:vim 操做命令大全服务器
这就是打开git log后,能够看到commit后有一串id,复制想到回滚的版本的idmybatis
复制后,直接执行相关命令便可,可使用的命令有:
回滚到id所指版本,不保留原更改 git reset --hard <id> 回滚到id所指版本,保留原更改 git revert <id>
若是还须要提交到远程分支,能够执行 git push -f origin <branch>
修改本地的master.txt文件,第一行是local master,修改完git add . git commit -m ‘xxxx’,提交到本地仓库。
此时,远程master分支上master.txt文件的第一行是origin master,
此时,咱们拉取远程master分支代码,使用命令:git fetch origin master:temp ,拉取远程master分支代码到本地仓库,可是存在新建的temp分支上。此时若是咱们直接合并temp,是会冲突的。
那么咱们能够在master的基础上采用git diff temp 命令,查看本地与远程的不一样,
其中<<<<HEAD与====== 之间是本地master的冲突代码,======与>>>>>>之间是temp的冲突代码。
手动修改以后,就能够合并了
其实git提供了不少的api,方便咱们的使用。
通常的公司的gitlab网址:
http://xxxxx.com/,咱们能够经过http://xxxxx.com/api/v4/groups来查看包的信息(http://xxxxx.com/api/v4/projects 直接查看项目的信息).
我的github上能够参考这篇文章:
一篇文章搞定Github API 调用 (v3)
#导入相关库 import json import shlex import subprocess from urllib.request import urlopen import re if __name__ == '__main__': #注意其中***是group的id,能够经过http://xxxxx.com/api/v4/groups来查看包的信息,private_token是本身申请的token信息,若是是我的github上,网址格式应该不同,自行替换。 allProjects = urlopen("http://xxxx.com/api/v4/groups/***?private_token=##########") #解析全部的文件项目名称 allProjectsDict = json.loads(allProjects.read().decode()) #正则匹配 urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+.git', str(allProjectsDict)) #遍历项目网址,调用相关命令下载 for thisProject in urls: thisProjectURL = thisProject try: command = shlex.split('git clone %s' % thisProjectURL) resultCode = subprocess.Popen(command) except Exception as e: command = shlex.split('git fetch %s' % thisProjectURL) resultCode = subprocess.Popen(command) print("Error on %s: %s" % (thisProjectURL, e.strerror))