Git 使用及说明

Git 使用及说明


第一部分
/*安装及新建工程文件*/
1、在ubuntu中安装git
$ sudo apt-get install git git-core


mac 环境:Homebrew installs
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


2、配置本机的git
$ git config --global user.name "harbinxxh"
$ git config --global user.email harbinxxh@gmail.com


3、生成密钥
ssh-keygen -t rsa -C "harbinxxh@egmail.com" //邮箱同上


4、提交密钥
vim /Users/xxh/.ssh/id_rsa.pub //复制里面的密钥
到github网页中登陆自己的账号,然后再account setting中,找到SSH KEY讲复制的密钥加入(需要再次输入github的密码)
密钥是在id_rsa.pub文件中,获取文件中的内容后,粘贴到github网站中[SSH KEY]密钥中.


5、检验是否链接上了github
//正常情况下,回显如下
PTY allocation request failed on channel 0
Hi plinx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.


/**/
6、建立新工程项目并推送到github服务器
$ mkdir tmp      //创建推送目录
$ cd tmp         //进入推送目录
$ git init       //设置该目录为推送
$ touch README   //生成readme.
/*添加文件方式*/
$ git add README //加入修改的文件及文件列表 
$ git add .      ( 添加当前目录下的所有文件和子目录 )
$ git add dir1 ( 添加dir1这个目录,目录下的所有文件都被加入 )
$ git add f1 f2 ( 添加f1,f2文件)
/*提交*/
$ git commit -m 'first commit' //递交修改声明




7、push
git remote add origin https://github.com/XXX(username)/YYYY(projectname).git
git remote add origin https://github.com/harbinxxh/3DSecondCourse.git
git remote add origin https://github.com/harbinxxh/LuoLiRun_3.2.git
加上一个remote的地址,名叫origin,地址是github上的地址(Create a new repo就会有)
因为Git是分布式的,所以可以有多个remote.


8、git push -u origin master //推送此次修改
将本地内容push到github上的那个地址上去。
参数-u 用了参数-u之后,以后就可以直接用不带参数的git pull从之前push到的分支来pull。
当出现下面错误时:说明github 上没有创建 tmp.git 项目
remote: Repository not found.
fatal: repository 'https://github.com/harbinxxh/tmp.git/' not found


9、登陆 github 网站新建项目目录
create repository name 输入[tmp]


重新执行:
10、git push -u origin master




第二部分
/*更新、删除等操作*/
/*clone 项目分支*/
1、github clone 新建项目分支
git clone https://github.com/harbinxxh/tmp/




/*修改后的文件,需要上传到远端服务器*/
$ git add README //加入修改的文件及文件列表
$ git add dir // 文件目录
$ git commit -m 'first commit' //递交修改声明
$ git push -u origin master




/*git 删除已经add的文件或目录, 有两种选择*/
一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除;
git rm --cached filename 把文件从staging area中删了,再commit,push,就把github里面那份也删了。
一种是 git rm -rf "文件路径" 不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。
操作:
$ git rm -rf "文件路径"
$ git commit -m 'first commit' //递交修改声明
$ git push -u origin master //推送此次修改




/*重服务器上下载新的修改过的文件*/
$ git pull    更新服务器代码到本地
$ git pull origin master是将origin这个版本库的代码更新到本地的master主分支






/*Git修改提交的用户名和Email*/
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:


    git config --global user.name "Your Name"
    git config --global user.email you@example.com


If the identity used for this commit is wrong, you can fix it with:


    git commit --amend --author='Your Name <you@example.com>'














/*查看日志信息*/


问题:
fatal: remote error: 
  You can't push to git://github.com/harbinxxh/test.git
  Use https://github.com/harbinxxh/test.git


解决: git push https://github.com/harbinxxh/test.git




/*git如何恢复本地删除的文件*/
直接从本地把文件checkout出来就可以了,用不着从远程服务器上pull下来,因为,所有的历史版本你的本地都有的。
具体做法 git checkout file 同时恢复多个被删除的文件:
git ls-files -d | xargs -i git checkout {}
-i 选项告诉 xargs 用每项的名称替换 {}。-t 选项指示 xargs 先打印命令,然后再执行。










/*Git递归删除指定目录下的 .git 文件*/
find . -name .git | xargs rm -fr


其中对 xargs 的介绍,可以参照以下内容:


xargs
大多数 Linux 命令都会产生输出:文件列表、字符串列表等。但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件、ascii 文本等);你能处理输出,使其仅显示文件名,目前你希望将这些名称传递给 ls -l 命令以查看时间戳记。xargs 命令就是用来完成此项工作的。他允许你对输出执行其他某些命令。记住下面这个来自于第 1 部分中的语法:


例1:
file -Lz * | grep ASCII | cut -d":" -f1 | xargs ls -ltr


例2:
$ ls | xargs -t -i mv {} {}.bak
-i 选项告诉 xargs 用每项的名称替换 {}。-t 选项指示 xargs 先打印命令,然后再执行。
另一个非常有用的操作是当你使用 vi 打开要编辑的文件时:
例3:


$ file * | grep ASCII | cut -d":" -f1 | xargs vi






如果你实在想尝试命令操作,可参考:​
显示:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏:defaults write com.apple.finder AppleShowAllFiles -bool false


提交 3D opengl 工程,cocos2d-x 3.2







Git使用


1. git pull    更新服务器代码到本地
a). git pull origin master是将origin这个版本库的代码更新到本地的master主分支


2. git push    将本地代码提交到服务器


3. git log    查看提交信息
a). git log -p    查看历次的log信息及更改情况
b). git log -p -4    查看距现在最近的4次的log信息及更改情况
c). git log frameworks/    查看关于frameworks/目录修改相关的log信息
d). git log --stat    查看log显示文件修改情况
e). git log --stat packages/apps/Contacts/    查看关于packages/apps/Contacts/目录修改相关的log显示的文件修改情况


4. git status    查看工作目录和代码仓库的改动情况


5. git diff 查看工作目录和本地仓库的差异或者本地仓库各个版本的差异
a). git diff packages/apps/Contacts/AndoridManifest.xml    查看工作目录中AndoridManifest.xml和本地仓库中AndoridManifest.xml的不同
b). git diff b46cae3b9a377bcd9cfc249a5778fce647feb961 dc94bf29aab18168e79d6496a89e47dba7a1d494    查看这两个版本的不同(git diff history_old history_current)


6. git commit 提交当前修改内容
a). git commit file1 file2 -m "log message"    提交file1,file2到本地仓库
b). git commit -a -m "log message"    提交所有在Git索引中的改动


7. git add 增加文件到Git索引
a). git add file3 file4    将file3,file4加入到Git索引中


8. git rm 从Git索引移除文件
a). git rm file3    将file3从Git索引中删除,并从本地删除
b). git rm --cached FileName 将文件从Git索引中删除,不删除实际的文件


9. git branch    对分支的增、删、查操作


a). git branch    显示所有本地分支
b). git branch new_branch    在当前版本创建一个名为new_branch的分支
c). git branch -D new_branch    强制删除名为new_branch的分支
d). git branch -r查看服务器上分支
e). git branch -a 显示服务器和本地的所有分支


10. git checkout    在不同的branch切换和还原文件


a). git checkout branch1    切换到branch1分支
b). git checkout origin/cmcc -b cmcc从服务器上pull分支origin/cmcc到本地的cmcc分支
c). git checkout /packages/apps/Contacts/AndroidManifest.xml    会将AndroidManifest.xml文件从上一次提交的版本更新回来,未提交的部分会全部回滚
d). git checkout /package/app/Contacts/ 重新拉这个目录里的文件到本地,如果你不小心把这个目录删除了,可以用这个来恢复
e). git checkout origin/m9002 -b m9002 下载远程分支origin/m9002到本地分支m9002


11. git reset 将当前的工作目录完全回滚到指定的版本号


a). git reset [--fixed] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1    只更新索引,不更新工作目录,也就是说所有的本地文件都不会更新
b). git reset [--soft] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1    
c). git reset [--hard] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1    强制回滚到指定版本号,未提交的和此版本之后的更改全部删掉
d). git reset --hard origin/master 强制和服务器上的master同步


12. git merge 


a). git merge branch1    将branch1的改动合并到当前所在分支


13. git patch
a). git format-patch -1 打一个当前提交的补丁,也就是最后一次的提交改动
b). git fromat-patch -1 6525c43add803bfee37cf5c1cb573ed8aecf529e    打一个指定具体某一次的补丁
c). git format-patch -2 6525c43add803bfee37cf5c1cb573ed8aecf529e    打基于指定具体某个版本的接连两次的补丁


14. git am


git am xxx.patch提交patch


git am --abort 将git的状态恢复到之前状态就可以继续提交patch了




14. tig linux下Git的界面化工具
a). tig查看当前仓库的所有记录
b). tig packages/apps/Launcher2/查看目录packages/apps/Launcher2/下的所有记录


15. 很多命令都可以加上目录来限制操作内容


16. git config


git config --global color.ui true git使用彩色


git config --global core.editor vim 使用vim编辑器




17. git stash


    git stash 隐藏工作目录的改变


    git stash pop 恢复工作目录的改变




18. git whatchanged


git whatchanged packages/apps/Contacts/  查看目录packages/apps/Contacts/下的文件修改状况








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值