您的位置:首页 > 编程语言

github和git的使用技巧和例子

2019-08-04 09:07 1351 查看
原文链接:http://www.cnblogs.com/codingking/p/4425848.html  

github和git的使用技巧和例子

分类: 开发工具使用技巧 linux2012-03-20 17:27 2826人阅读 评论(1) 收藏 举报 gitbranchsubmodulemerge版本控制系统conflict  

目录(?)[+]

 

一:初学操作,

1,注册,创建项目,linux本地安装等工作已经做过。参考http://apps.hi.baidu.com/share/detail/31697631

2,生成密码

 

(1)ssh-keygen -t rsa -C "ttyttytty12@邮箱名"

1)密码会自动放到/root/.ssh/id_rsa如下所示(也可以指定密码的名字,最好不要,因为ssh会自动往这个文件下找密码)。

Enter file in which to save the key (/root/.ssh/id_rsa):

2)如果出现下面提示,说明你当前文件夹下已经有密码了,是问你是否覆盖。

Overwrite (y/n)?

3)在下面提示后输入两遍密码:passwrd。

Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

此时会出现两个密码,私钥密码id_rsa,公钥密码id_rsa.pub。

(2),把公钥密码(id_rsa.pub)放到

https://github.com/settings/ssh

的Add SSH Key中,

名字最好是你的密码比如"password.pub",省的忘掉。

(3)测试

#ssh -vT git@github.com

在出现以下后输入密码。

Enter passphrase for key '/root/.ssh/id_rsa':

3,新创建一个文件夹,clone(下载)项目,

1)不可上传

#git clone git://github.com/ttyttytty12/dns_test.git

2)可编辑上传(需要密码)

#git clone git@github.com:ttyttytty12/dns_test.git

3)基本操作需要三步,

git add .是加当前文件夹下所有的文件(别忘了add后面的“.”)git commit -m是加版本描述,git push是上传到远程git服务器

#git add .

#git commit -m "add file"

#git push

(push后输入自己设定的ssh密码)

4)创建远程仓库(repositories)branch3

#git remote add branch3 git@github.com:ttyttytty12/dns_test.git

5)把本地仓库(local)的branch分支复制到远程仓库(repositories)branch3里面,做远程仓库(repositories)branch3里面的其中一个分支,名字为“branch”。

 

#git push branch3 branch

 

[root@dns dns_test]# git branch -a
* branch
  master
  remotes/branch3/branch
  remotes/origin/HEAD -> origin/master
  remotes/origin/branch2
  remotes/origin/master

5)下载远程仓库(repositories)origin库的分支branch2到本地,命名为“branch”(会自动在本地创建一个branch分支),并且自动进入到本地分支branch。

#git checkout -b branch origin/branch2

 

 

二:git命令详解

(一)git的命令简介

 

1,git add 将本地资料先暂存到staging area, add 之后再新增的资料, 于此次commit 不会含在里面.

2,git rm 删除文件

3,git mv 移动文件
4,git status 看目前的状态
5,git Commit 加注释,查看更改内容,需要先add
6,git branch # 列出目前有多少分支(branch),修改分支(branch)
7,git checkout 切换branch
8,git diff master # 与Master 有哪些资料不同,某两个版本的差别等
9,git Tag 加版本号
10,git log 将所有log 秀出,某时间段的log,修改过的档案,图形化分支
11,git show v1 查tag:v1 的修改内容
12,git reset 还原 
13,git grep "te" v1 # 查v1 是否有"te" 的字串
14,git stash 暂存
15,git merge 合并
16,git blame 关于此档案的所有commit 纪录
17,git ls-files -d 还原或查看已删除的档案
18,git revert 资料还原(commit)
19,git gc # 整理前和整理后的差异, 可由: git count-objects 看到.
20,git remote 维护远端档案
21,git fetch origin 抓取/ 切换仓库(Repository) 的branch

22,git push origin :heads/reps-branch 删除仓库(Repository) 的branch

23,git pull 将服务器的数据拿出并和合并到本地工作目录中的当前分支

pull的语义不是单纯的拿,而是fetch+merge。即使和本地没区别,也会生成个空的merge commit。所以想要获取remote origin 直接使用 git fetch origin。不要用pull。

24,git push 将本地修改与版本库合并的命令是

 

(二)Git常用操作命令收集:

 

1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/jquery.git 查看远程仓库:$ git remote -v 添加远程仓库:$ git remote add [name]
  • git log --pretty=oneline # 秀log 的方式
  • git log --pretty=short # 秀log 的方式
  • git log --pretty=format:'%h was %an, %ar, message: %s'
  • git log --pretty=format:'%h : %s' --graph # 会有简单的文字图形化, 分支等.
  • git log --pretty=format:'%h : %s' --topo-order --graph # 依照主分支排序
  • git log --pretty=format:'%h : %s' --date-order --graph # 依照时间排序
  • Git show

    • git show ebff # 查log 是commit ebff810c461ad1924fc422fd1d01db23d858773b 的内容
    • git show v1 # 查tag:v1 的修改内容
    • git show v1:test.txt # 查tag:v1 的test.txt 档案修改内容
    • git show HEAD # 此版本修改的资料
    • git show HEAD^ # 前一版修改的资料
    • git show HEAD^^ # 前前一版修改的资料
    • git show HEAD~4 # 前前前前一版修改的资料

    Git reset 还原

    • git reset --hard HEAD # 还原到最前面
    • git reset --hard HEAD~3
    • git reset --soft HEAD~3
    • git reset HEAD filename # 从staging area 状态回到unstaging 或untracked (档案内容并不会改变)

    Git grep

    • git grep "te" v1 # 查v1 是否有"te" 的字串
    • git grep "te" # 查现在版本是否有"te" 的字串

    Git stash 暂存

    • git stash # 丢进暂存区
    • git stash list # 列出所有暂存区的资料
    • git stash pop # 取出最新的一笔, 并移除.
    • git stash apply # 取出最新的一笔stash 暂存资料. 但是stash 资料不移除
    • git stash clear # 把stash 都清掉

    Git merge 合并

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: