git使用
-
新建本地分支并切换
git checkout -b fenzhi_1
-
新建的分支push到远程(此时远程没有对应分支)
git push -u origin fenzhi_1
-
远程的分支到本地
git checkout -b AA_1.0 origin/AA_1.0
-
删除分支
git branch -d fenzhi_1 (本地) git push origin --delete fenzhi_1(远程)
-
切换分支时暂存工作区内容(自上次提交后)
git stash(暂存/隐藏) git stash pop (加载/现实暂存的内容)
-
打标签(不同版本一般有标签记录) 切换到要打标签的branch ,标签以最近commit的版本为准
git tag -a v_1.0 -m "first tag"
给上次commit 补打标签:git tag -a v_123 e123dff(commit号)
将本地标签推送到远端:
$ git push origin v0.1.2 # 将v0.1.2标签提交到git服务器 $ git push origin -tags # 将本地所有标签一次性提交到git服务器
获取远端某tag版本:git fetch origin tag V1.2。
-
版本回滚 想要切换到以前的某一个版本,要找到那次commit 的ID。
A:如果打过标签,比如想要切换到到上次的 某一发布版本,运行git tag 找到v_1.2.1,运行git show v_1.2.1.找到commit ID。
B:运行git reflog 得到所有改动的ID。
回滚:git reset --hard 963e123 回到那个版本。
**发现即使分支不同,也会在当前所在分支切回963e123版本,所以个人想法最好新建一个分支用以找 回之前版本**
-
修改项目对应远程仓库地址
切换文件夹 git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
git remote set-url origin http://192.168.100.235:9797/john/git_test.git
1 . git 自有服务器地址更改 :切换到项目目录下 vim .git/config (open .git/config 文件也可)修改。
2 . 安装过程记录:
1. 下载dmg git 客户端安装
2. 运行git 配置git config .(如果不配置 ,git 不知道用户名和邮箱,而每次本地commit都需要这些信息)
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
3. 配置ssh . 与github建立连接 (可以免输入账户密码远程登录 公钥验证)。push 时可以直接连接github 服务器。流程 本地生成钥匙对(公钥私钥 私钥自己保留 公钥给github用于验证)
$ ssh-keygen -t rsa -C "邮箱" 一直enter获取钥匙对
cd 到 ~/.ssh 目录下 打开公钥 。 复制出公钥填写到github 账户设置(setting)中。
***暂时不能理解为何 不配置ssh 只是第一次提交需要输入github 账户密码 以后都无需输入 。
那:
ssh 有什么用(可以不配置?)
本地git 记住用户名密码?
如果一个git 对应两个GitHub 账号(个人 公司),每个账号下的不同项目怎么区分的?
******
git 从一个仓库迁移到另一个仓库
-
git上新建一个项目仓库。git://github.com/sunkai/newproject
-
从原地址克隆一份裸版本库
git clone --bare git://sunkai..../project.git // --bare 不包含工作区,只是纯版本库,git status
-
镜像方式推送到新服务器
cd newproject
git push --mirror git://github.com/sunkai/newproject
本地原来的可以删掉了,clone新地址的项目即可,可以看到版本信息,commit tag都在。