git的配置
配置个人的用户名称和电子邮件地址:
git config --global user.name "yzhuar"
git config --global user.email [email protected]
配置credential helper,并使用Http/Https传输
$ git config --global credential.helper store
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
创建 git 仓库:
mkdir TestP
cd TestP
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/yzhuar/TestP.git
git push -u origin master
已有仓库
cd existing_git_repoTestP
remote add origin https://gitee.com/yzhuar/TestP.git
git push -u origin master
克隆你的项目到本地
cd d:/test // 去到目标目录
git clone https://git.oschina.net/name/test.git // 克隆整个项目
git clone https://git.oschina.net/name/test.git --recursive // 递归的方式克隆整个项目
GIT的版本控制逻辑
当前
同步
暂存
提交
推送
提交强制覆盖远程仓库
git push origin 分支名 --force
eg:
cd 代码目录
git push origin master --force
运行结果:
Total 0 (delta 0), reused 0 (delta 0)
To https://gitee.com/yzhuar/pyGRRTool.git
+ f20ec88...d2128f5 master -> master (forced update)
git强制覆盖本地命令
本地不小心点了编辑,导致部分代码到了推送,但是又不想推送。
所以类似还原了本地代码的版本。如下图:
git fetch --all # 取回远程库的所有修改;
git reset --hard origin/develop # 指向远程库origin的develop(可更改成自己想要取的远程分支)
git pull # 把远程库拉取到本地库
git fetch --all && git reset --hard origin/decvelop && git pull # 单条执行
git强制覆盖本地命令
本地不小心点了编辑,导致部分代码到了推送,但是又不想推送。
所以类似还原了本地代码的版本。如下图:
git fetch --all # 取回远程库的所有修改;
git reset --hard origin/develop # 指向远程库origin的develop(可更改成自己想要取的远程分支)
git pull # 把远程库拉取到本地库
git fetch --all && git reset --hard origin/decvelop && git pull # 单条执行
清除 git 所有历史提交记录方案
1.创建新分支 git checkout --orphan latest_branch
使用 --orphan 选项,可创建1个"清洁"分支(无任何的提交历史,但是当前分支的内容一应俱全。但严格意义上说,这样创建的分支还不是一个真正的分支,因为HEAD指向的引用中没有commit值,只有在进行一次提交后,它才算得上真正的分支。
注意:新的分支名可以随意命名,但不能和以前的分支名冲突。这儿特别强调是因为很多人习惯默认将分支名创建为 master.本文以 latest_branch 作为新分支名,这个名称没有任何特殊含义,你可自定义,只要保证和以后的使用一致即可。
2.添加所有文件 git add . 或 git add -A
3.commit代码 git commit -m "自定义提交说明"
4.删除原来的主分支(master) git branch -D master
一般仓库默认的主分支为 master 分支,如果原来的主分支不是 master, 用实际的主分支名代替。
5.把当前分支重命名为master git branch -m master
6.最后把代码推送到远程仓库 git push -f origin master
注意: 有些仓库有 master 分支保护,不允许强制 push,需要在远程仓库项目里暂时把项目保护关掉才能推送。
注意: 推送前 需要使用 git remote -v 查看关联的远程仓库的信息(主要是远程库的别名)。虽然远程库的别名默认是 origin ,但你可能设置过其他的别名(而非 origin).
推送前,有的情况需要设置:git branch --set-upstream-to=origin/master master。