Git 常用命令
以前汇总:
1.安装git bash
http://msysgit.github.io/ 下载最新git exe文件
2.在git bash 中指定本地目录并创建本地库
cd e:/workspace
git init
(此时,可以add和commit---添加到暂存区)
3.与远程库建立秘钥连接
$ ssh-keygen -t rsa -C "Administrator@X05THXG05XXM1CM"
或
$ ssh-keygen -t rsa
(秘钥文件保存在c盘:C:\Users\Administrator\.ssh)
有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任
何人。
将id_rsa.pub的内容粘贴到hithub秘钥中去。
4.与远程库关联
http://live.insta360.com/pano/test_0413
https://github.com/loverong22/RongRepository.git(远程库)
$ git remote add origin git@github.com:loverong22/RongRepository.git
----------------------------------------最新整理----------------------------------------------------------------
1.$ mkdir learngit ----> 创建本地库
2.$ cd learngit ---->选择本地库(目录)
3.$ pwd ---->显示当前本地库目录
4.$ git init ---->安装本地库
5.$ git add readme.txt ---->添加文件到本地库(暂存区)
6.$ git commit -m "wrote a readme file"---->提交到本地库
7.$ git commit -m "add distributed"
$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m "add 3 files”. ---->提交多个暂存区文件
若弹出显示窗,输入:+q ---->退出显示窗
8.$ git status ---->查看本地库状态
9.$ git diff readme.txt ---->文件不同查看
10.$ git remote add origin git@github.com:远程用户名/本地库名.git
git remote add origin git@server-name:path/repo-name.git; ---->远程库和本地库建立关联
git remote set-url origin ssh://wanguangrong@192.168.1.119:7999/vd/gundam_cli
ent_cocos2d.git --->设定远程库域名
git remote -v ---查看远程连接库
git remote rename origin server 将远程端(roigin)修改为server
git remote rm branch 删除远端分支
git push --delete origin 分支名 ---删除远程分支
git branch -m devel develop 重命名本地分支
11.$ git push -u origin master ---->把本地库的所有内容推送到远程库上(随时都可以提交当前状态):
$ git push --all ---->推送所以内容到远程库
$ git push origin 分支名称 --->推送该分支(当前分支)
12.$ ssh-keygen -t rsa -C "your\_email@example.com" ---->创建SSH Key
13.$ git clone git@github.com:远程用户名/远程库.git ---->从远程克隆远程库
例: git clone ssh://wanguangrong@192.168.1.119:7999/vd/gundam_client_cocos2d.git
14.$ git checkout -b dev ---->建立一个分支
$ git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev 创建分支
git checkout dev ---->切换分支
15.$ git branch ---->查看分支(当前分支会有*)
git branch -a 查看本地、远端所有分支
git branch -r 查看远程分支
git branch -v 查看分支详细信息
git branch -av 查看所有分支详细信息
16.$ git merge 分支名 ---->合并分支
17.$ git branch (两个空格)-d 分支名 ---->删除分支
(若提示:error: The branch ‘分支名’ is not fully merged.
可用:$ git branch -D 分支名 删除完全合并分支/强制删除)
18.git merge 分支名称 ---->合并某分支到当前分支
git merge origin 分支名--->合并远程分支到当前分支
git merge origin/分支名
19.$ git reset --hard HEAD^---->回到上一步操作
git reset --hard -->返回上次push 状态
20.$ cat readme.txt ---->显示 文件查看內容
21.$ git log ---->操作日志
22.用“git diff HEAD -- readme.txt”命令可以查看工作区和版本库里面最新版本的区别:
$ git diff HEAD -- readme.txt
23.$ rm test.txt ---->删除指定文件(直接在文件管理器中把没用的文件删了)
$ rm -rf gundam/(目录) --->删除当前目录下所有文件
$ git rm --cached 文件 --->清楚暂存区文件
git rm -r --cached backup --从缓存删除特定文件
24.$ git rm test.txt ---->确实要从版本库中删除该文件
25.$ git checkout --test.txt ---->把误删的文件恢复到最新版本
26.$git push -u 远程分支名(gundam improvement/GUN-2) 推送到远程指定分支
27.$git push --delete 远程分支名(origin improvement/GUN-2)删除远程指定分支
28.$ls
查看本地库 文件(预览)
29.$git mv old文件名 new文件名 //修改文件名称
30.$start . ---打开本地根目录文件夹
31.$git push(命令) --help ----打开该命令官网文档
额外:
$ git config --global core.autocrlf false
$ git config --global push.default simple
$ git push origin --delete master
$ git push origin --delete version/gundam
$ git branch -m master
$ git config --list | grep crlf
$ git rm --cached -r Classes
$ git add .gitignore
$ ssh root@s2.ziyugame.com
git 冲突
error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
git checkout HEAD file/to/restore
验证配置
$ git config --list(若无此操作,会反复提示验证邮箱)
配置是存放在个人主目录下的 .gitconfig 文件中的
$ cat ~/.gitconfig(查看文件内容)
例:
$ git config --global user.email "zisehuiyi2007@126.com"
Administrator@X05THXG05XXM1CM /e/LocalRepository (rong-1)
$ git config --global user.name "Rong"
Administrator@X05THXG05XXM1CM /e/LocalRepository (rong-1)
$ git config --list
push 时避免输入用户信息
【方案一】
1).环境变量:在用户变量的地方创建一个HOME变量,值为%USERPROFILE%
2).打开这个用户目录,每个人的用户目录不一样,我的为C:\UsersAdministrator,在用户目录下创建一个文件名为_netrc的文件,注
意,这是没有扩展名的(可以新建记事本文件,删除扩展名)
3).假如我的项目的Git地址为:http://118.28.35.163/android/chat.git,用户名为:dai_zhenliang@163.com,密码为:
daizhenliang888999,右击_netrc这个文件,选择使用notepad++打开,输入如下内容:
machine 118.28.35.163
login dai_zhenliang@163.com
password daizhenliang888999
上面中的machine不一定是ip值,如果你的git地址是http://git.daizhenliang.com/android/chat.git,则machine的值应该为:
git.daizhenliang.com
https://github.com/loverong22/RongRepository ,则machine的值为:
github.com 以此类推
【方案二】
git项目config配置文件中 修改对应远程库关联信息:
例:
[remote "origin"]
url = https://zisehuiyi2007:rosi8899@code.aliyun.com/capjason/insta360studio.git
fetch =
+refs/heads/*:refs/remotes/origin/*
另外,遇到无法push/pull 的情况也可以从新从服务器把数据克隆到本地,使用克隆下来的git(ssh方式),就可以避免这个问题。