github提交代码

一、在linux下搭建git环境
1、创建Github账号,https://github.com
2、Linux创建SSH密钥:

[plain] view plain copy
 
  1. ssh-keygen  ##一直默认就可以了  

3、将公钥加入到Github账户信息Account Settings->SSH Key
4、测试验证是否成功。

[plain] view plain copy
 
  1. ssh -T git@github.com  
  2. Hi someone! You've successfully authenticated, but GitHub does not provide shell access.  


二、同步github到本地
1、复制项目到本地:

[plain] view plain copy
 
  1. git clone git://github.com:xxxx/test.git ##以gitreadonly方式克隆到本地,只可以读  
  2. git clone git@github.com:xxx/test.git  ##以SSH方式克隆到本地,可以读写  
  3. git clone https://github.com/xxx/test.git ##以https方式克隆到本地,可以读写  
  4. git fetch git@github.com:xxx/xxx.git  ##获取到本地但不合并  
  5. git pull git@github.com:xxx/xxx.git ##获取并合并内容到本地  

查看远程所有分支 git branch -r

 本地没有branchV*,拉取远端主干下的分支branchV*,并创建本地名为branchV*的分支

git checkout [本地master,即远端git主干地址别名]/branchV* -b branchV*
三、本地提交项目到github
1、本地配置

[plain] view plain copy
 
  1. git config --global user.name 'onovps'  
  2. git config --global user.email 'onovps@onovps.com' #全局联系方式,可选  

2、新建Git项目并提交到Github。

[plain] view plain copy
 
  1. mkdir testdir & cd testdir  
  2. touch README.md  
  3. git init #初始化一个本地库  
  4. git add README.md #添加文件到本地仓库  
  5. git rm README.md #本地倒库内删除  
  6. git commit -m "first commit" #提交到本地库并备注,此时变更仍在本地。  
  7. git commit -a  ##自动更新变化的文件,a可以理解为auto  
  8. git remote add xxx git@github.com:xxx/xxx.git  #增加一个远程服务器的别名。  
  9. git remote rm xxx   ##删除远程版本库的别名  
  10. git push -u remotename master #将本地文件提交到Github的remoname版本库中。此时才更新了本地变更到github服务上。  (-u的用法,加了参数-u后,以后即可直接用git push 代替git push origin master)
 

git命令使用思维图:【非常有料】

四、git 查看单独一个文件的修改历史

1. git log filename
可以看到fileName相关的commit记录
2. git log -p filenam
可以显示每次提交的diff
3. 只看某次提交中的某个文件变化,可以直接加上fileName
git show c5e69804bbd9725b5dece57f8cbece4a96b9f80b filename

 

在当前版本上的修改 添加到缓存区 : git stash save "修改了什么的注释"

列出缓存区内容:git stash list

在当前版本基础上合入缓存区代码:git stash pop

拉取主干及其分支的更新

git fetch proj_main

拉取分支的更新

git fetch proj_brantchV1

git 

删除untracked文件

#删除untracked files

$ git clean -f

#连untracked的目录也一起删除

$git clean -fd

#连gitignore的untracked文件、目录也一起删掉(慎用,这个一般用来删掉编译出来的.o之类的文件用的)

$ git clean -xfd

#在上述的git clean前,建议加上-n参数来先看看会删掉哪些文件,防止重要文件被误删。

$ git clean -nf

$git clean -nfd

$ git clean -nxfd

完整版git学习推荐 :一起学习linux环境的git

Git撤销远端提交

用于远端提交message由错误内容或者错误提交代码,为了保证提交信息的简洁易懂,选择1)撤回远端内容从新提交(本地文件不变)

git reset --soft HEAD~1 //或版本号

2)从新提交代码 commit

3)通过 git push origin master --force 强制提交当前版本号

git push --force origin 你的分支名

 

Git add . Git add * 的区别

Git add命令一般有三个参数 ., -u ,-A

-u 不包含新增

. 包含新增,修改(Git2.X 后包含删除)

-A 包含新增,修改,删除.

至于*, 解读它的是shell的语法,

git add 无法识别*, 但会接收shell通过*遍历而来的文件列表.

shell*本身不匹配....开头的文件

. *最大的区别在于:

* 不包含.开头的隐藏文件,且匹配不到已经删除的文件列表

. 匹配所有文件所有状态文件(1.X版本不包括删除文件)

 

撤销已add的单个文件修改到modified

git reset 单个文件

撤销已commit的某个文件的修改

 

git log <filename>

 

git reset <commit-id> <filename>

 

再撤销对此文件的修改

 

git checkout <filename>

 

最后amend,再push

 

git commit --amend

 

git push origin <remoteBranch>

 

posted @ 2016-03-31 08:09  PKICA  阅读(251)  评论(0编辑  收藏  举报