关于git常用操作总结
2019-12-29 本文已影响0人
coderljx
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
在服务器网站中新建一个项目,新建项目时最好直接添加上 README 和 .gitignore 文件,不同的编程语言可以选择不同的.gitignore文件
添加.gitignore可以忽略一些不必提交的自动改动,简化提交
从服务器克隆项目,后面为你新建项目的地址,此处我以AFN仓库为例
git clone [https://github.com/AFNetworking/AFNetworking.git](https://github.com/AFNetworking/AFNetworking.git)
克隆完成后,文件夹下(桌面)会生成一个工程的项目文件,此处为AFNetworking,使用命令行cd到新生成的项目路径中去
将需要上传的工程文件拷贝到克隆出来的文件夹中
初始化git仓库
git init // 在当前项目目录中生成本地git管理,并建立一个隐藏.git目录
添加文件到git中
git add . // 添加当前目录中的所有文件到索引
提交到本地代码仓库
git commit -m "first commit" //提交到本地源码库,并附加提交注释
提交到远程代码仓库
git remote add origin [https://github.com/AFNetworking/AFNetworking.git](https://github.com/AFNetworking/AFNetworking.git) //添加到远程项目,别名为origin (后面的是项目地址)
git remote add upstream [git@git.in.zhihu.com](mailto:git@git.in.zhihu.com):wallet/wallet.git
每次开始新的开发任务时,都更新本地缓存并从已经上线的 master 分支检出新分支(以my_branch为例):
git fetch upstream
git checkout -b my_branch upstream/master 创建并映射远程分支
# 本地开发
git add .
git commit -m '修复了 xxx bug'
git push origin my_branch
git push origin test:test // 提交本地test分支作为远程的test分支w
git branch -d name 删除分支
git log --pretty=oneline 查看历史提交版本
git add .
git commit -m '描述'
git reset head 返回修改
git remote -v 查看远程状态
git remote add upstream xxxx 指向forked源
git checkout master
git merge upstream/master forked源代码合并到本地
git push origin master 提交更新到原创fork分支
git branch -u origin/develop 映射远程分支
git branch -vv 查看映射关
git cherry-pick {your commit id} 只合并一部分代码,神级指令
取消对文件的修改。还原到最近的版本,废弃本地做的修改。
git checkout -- <file>
取消已经暂存的文件。即,撤销先前"git add"的操作
git reset HEAD <file>...
修改最后一次提交。用于修改上一次的提交信息,或漏提交文件等情况。
git commit --amend
回退所有内容到上一个版本
git reset HEAD^
回退a.py这个文件的版本到上一个版本
git reset HEAD^ a.py
向前回退到第3个版本
git reset –soft HEAD~3
将本地的状态回退到和远程的一样
git reset –hard origin/master
回退到某个版本
git reset 057d
回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit.(代码回滚到上个版本,并提交git)
git revert HEAD