作者本人使用的是mac系统,和windows可能会有所不同,不过大多数方法是一样的
首先确保你注册了github,并且建立了项目(repository)
1.直接拖动图标
项目下有一个人uplopad files,点进去以后,直接把代码拖动进去就行了
下面会询问你是否需要commit to a new branch。
大概就是问你是否这些东西是同属一个目录下的,自然选择第一个
2.terminal端上传
这个有一个要求,就是在建立项目的时候,下方会问你是否要创建最初的readme和license
就是这个,不要选!
网页会进入这样的一个界面
然后我们返回我们电脑的terminal来
首先,你需要进入你的代码所在的file
cd /filepath
简洁版
你直接跟着第一块黑色区域内的代码执行就行了
复杂版
为了弄清楚每一步是干什么的,特意搞了这个复杂版
在里面先初始化
git init
这个时候你会看到多出一个.git文件
考虑到有人没有添加readme文档,可以先添加一个
git add README.md
然后上传文件
git add filename
如果想要一口气全部上传到库,可以用
git add *
注意:上传到库不等于上传到github上!!!
上传完之后,检查一下哪些上传了哪些没传
git status
绿色的是上传的,红色的是没传的
添加commit的话
git commit -m “Commit message”
这个是用来备注的,告诉你我这次跟新是第几次更新,一般引号内写“first commit"之类的
最后上传代码
git remote add origin <url.git>
git push -u origin master
多人开发时
首先进入.git文件所在地址,把最新的代码pull下来,来更新自己的(拉下来不会覆盖自己的本地代码)
git pull
修改完之后,把所有的东西都加上git,这样大家共同进退(大家版本一致)
git add .
然后上传到本地仓库
git commit -a -m ‘commmit content’
#-m参数是用来写更新了什么东西
自己本地修改完以后,再上传远端的master branch上
git push
本质上来说,最后这一步才是真正的更新
删除.idea/pycache
原因
.idea和_pycache_已经被git跟踪,之后再加入.gitignore后是没有作用的
解决方案
1.必须现在本地删除,然后
git pull
#进行同步
2.在.gitignore里写
*/.idea
*.idea
*/_pycache_/
_pycache_/
#所有层级下全部删除,因为是文件夹,所以最后要加/
删除.DS_Store
Mac的镜像文件,本地看不到
解决方案
1.在repository端把这些删掉
2.本地.gitignore里加上
.DS_Store
*/.DS_Store
然后
git pull
#远程和本地同步
git commit -a -m ‘no ds’
git push
branch问题
比如你这边修改了文件,别人那边也修改了文件,但是别人先提交了,你试图提交的时候就会因为不匹配而出现error。
解决方法
将自己的修改提交为一个branch,然后再与原来的master合并
当然,两个branch要合并,意味着你的代码在除了你自己新加的部分,其余部分还要修改的和master一样。
1.创建一个branch
git branch branchname
切换到new branch上
git checkout -b branchname
#当然,你直接运行这一步,它会把创建、切换自动一步完成
2.commit到本地仓库
git commit -m “new branch”
#不能用git commit -m -a,会报错
3.push到远端的repository,-u (是–set-upstream的缩写)
git push -u origin branchname
这边看到前缀就知道切换到branch上了
4.查看branch列表
git branch
5.切换回master branch
git checkout master
如果你这个时候打开你的文件管理器,你会看到文件里面Master branch和new branch里面所有的文件都出现在里面(除了相同的文件)
6.合并merge
git merge branchname
最后从本地push一下
git push origin master
此时再去看文件管理器,就会发现那些文件因为合并而消失了。
7.删除branch
git branch -d branch_name
版本退回
git log --pretty=oneline #查看提交日志
git diff #查看差异
git reset --hard HEAD^
#这里的HEAD是指针,^表示往回退一个版本
#如果要退多个版本,可以用HEAD~3来退回三个版本
取消之前的编辑
git status #先查看状态
git checkout – test.txt #–之后空格,选中你要取消的文件