git 总结
git初始化仓库
## Git 全局设置
git config --global user.name "wkkkkkkkkk"
git config --global user.email "XXXXXXXXX@163.com"
## 创建新版本库
git clone https://code.aliyun.com/yes5144/GoDevops.git
cd GoDevops
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
## 已存在的文件夹或 Git 仓库
cd existing_folder
git init
git remote add origin https://code.aliyun.com/yes5144/GoDevops.git
git add .
git commit
git push -u origin master
git第一次克隆
## 普通clone
git clone https://code.aliyun.com/yes5144/GoDevops.git
## 通过ssh秘钥,上传自己的秘钥后,可以实现免秘钥上传和下载
git clone git@code.aliyun.com:yes5144/GoDevops.git
git第一次提交
## 添加全部
git add .
## 添加指定文件
git add README.md
## git commit -m 'your description'
git版本回退
## 回到上一个版本,如果想要回到前两个版本,就在HEAD后面用两个^^
git reset --hard HEAD^
## 回到指定版本,这里用git reflog配合好使用
git reset --hard commit_id
-----------------------
## 操作需谨慎,记得备份
git reset --hard HEAD~1
git add .
git commit -m 'roll-back'
git push -f origin master
check分支
git合并分支
git merge
git merge
放弃本地修改,并远程覆盖本地
## 建议阅读此链接后再谨慎操作:https://stackoverflow.com/questions/1125968/how-do-i-force-git-pull-to-overwrite-local-files
本地有修改和提交,如何强制用远程的库更新更新。我尝试过用git pull -f,总是提示 You have not concluded your merge. (MERGE_HEAD exists)。
我需要放弃本地的修改,用远程的库的内容就可以,应该如何做?傻傻地办法就是用心的目录重新clone一个,正确的做法是什么?
## 正确的做法应该是:
git fetch origin master
git reset --hard origin/master
## git fetch 只是下载远程的库的内容,不做任何的合并
## git reset 把HEAD指向刚刚下载的最新的版本