git clone一个repo下来,然后去干活,干完活要把东西push上去按照一下步骤:
- git init :该命令是在你的项目目录下初始化一个repository,执行成功后,会在你的目录下生成一个.git的隐藏文件
- git add . 或者一个文件,或者一个问价夹都可以:表示把该目录下的所有文件加入到本地暂存区中。执行成功后不会有任何提示
- git add -f path 可以把路径下的所有文件添加进去
- git status :该命令会把你本地工作区和暂存区的版本进行比较,查看当前的状态。我下面的状态是已经把所有文件加入到了暂存区中,但是还没有提交到本地历史区。
- git commit -m "这里是注释。。。" :该命令会把本地暂存区中的文件提交到本地历史区,注意只有在本地历史区中的内容才能提交到github。执行该命令后,我们所有的文件都只是在本地。没有github任何关系。
- git remote add origin git@git-core.megvii-inc.com:gd_products/face_retina_net.git: 该命令是把本地历史区中的文件添加到github服务器的暂存区中。这一步是本地和远程服务器建立联系的一步。执行成功后不会显示任何结果
- git pull origin master(或者其他分支): 该命令是先把github上的文件拉下来,注意在每次提交之前要首先进行pull,这是防止冲突。
- git push origin master(或者其他分支):
如何删除文件,一下方式会同时删除本地目录、本地cached和远程目录:
- git rm file 或者 git rm -r path
- git commit -m " "
- git pull origin master
- git push origin master
如果本地已经手动删除,则需要先删除本地cached中的相应文件或者目录,然后push上去:
- git rm -r --cached path 或者 git rm --cached filename
- 其他步骤与以上相同
从远程库同步到本地库:链接
可能遇到的问题:
- 每次push要求填写用户名和密码: 已配置ssh,从remote repository可以正常clone,无需填写密码,但每次push有弹框跳出要求填写用户名密码。原因:A common mistake is cloning using the default (HTTPS) instead of SSH.通过命令:
git remote set-url origin git@github.com:username/repo.git 修改
如何clone某个分支:
git clone -b 分支 仓库地址
如何回滚代码:
git reflog # 查看操作历史
git reset --hard b45959e
如何新建分支:
git checkout -b my-test //在当前分支下创建my-test的本地分支分支
git push origin my-test //将my-test分支推送到远程
git branch --set-upstream-to=origin/my-test //将本地分支my-test关联到远程分支my-test上 可以不设置
git branch -a //查看远程分支
git checkout master //切换回master分支