Centos6.5下git使用
基本功能
1、创建Github账号,
2、Linux创建SSH密钥:
3、将公钥加入到Github账户信息Account Settings->SSH Key
tiltle中填写上名字后,
在key框中,将linux系统里主目录的.ssh/id_rsa.pub 文件中的内容全部复制到key框中即可
4、测试验证是否成功。
-
ssh -T git@github.com
-
Hi [YourGithub账号]! You've successfully authenticated, but GitHub does not provide shell access.
同步github到本地
1、复制项目到本地:
-
git clone git://github.com:xxxx/test.git ##以gitreadonly方式克隆到本地,只可以读
-
git clone git@github.com:xxx/test.git ##以SSH方式克隆到本地,可以读写
-
git clone /xxx/test.git ##以https方式克隆到本地,可以读写【常用】
-
git fetch git@github.com:xxx/xxx.git ##获取到本地但不合并
-
git pull git@github.com:xxx/xxx.git ##获取并合并内容到本地
本地提交项目到github
1、本地配置
-
git config --global user.name 'onovps'
-
git config --global user.email 'onovps@onovps.com' #全局联系方式,可选
2、新建Git项目并提交到Github。
-
mkdir testdir & cd testdir
-
touch README.md
-
git init #初始化一个本地库
-
git add README.md #添加文件到本地仓库
-
git rm README.md #本地倒库内删除
-
git commit -m "first commit" #提交到本地库并备注,此时变更仍在本地。
-
git commit -a ##自动更新变化的文件,a可以理解为auto
-
git remote add xxx git@github.com:xxx/xxx.git #增加一个远程服务器的别名。xxx/xxx.git就是用户名/项目名.git
-
git remote rm xxx ##删除远程版本库的别名
-
git push -u remotename master #将本地文件提交到Github的remoname版本库中。此时才更新了本地变更到github服务上。
小tip
进入到git项目名中
添加远程服务器为本目录名
git remote add ${PWD##*/} git@github.com:BillWang139967/${PWD##*/}.git
讲本地文件提交到github的remoname版本库中
git push -u ${PWD##*/} master
分支版本操作
1、创建和合并分支
-
git branch #显示当前分支是master
-
git branch new-feature #创建分支
-
git checkout new-feature #切换到新分支
-
vi page_cache.inc.php
-
git add page_cache.inc.php
-
git commit -a -m "added initial version of page cache"
-
git push origin new-feature ##把分支提交到远程服务器,只是把分支结构和内容提交到远程,并没有发生和主干的合并行为。
2、如果new-feature分支成熟了,觉得有必要合并进master
-
git checkout master #切换到新主干
-
git merge new-feature ##把分支合并到主干
-
git branch #显示当前分支是master
-
git push #此时主干中也合并了new-feature的代码
常用功能
1 版本回退
当我们修改了一次文件后,比如我们修改mygit.txt,下面咱对它进行修改,内容如下:
-
# shell_wheel
-
The shell framework, the purpose is convenient debugging shell program
-
-
very convenient
上面中的very convenient是新增加的内容
然后使用git status命令来跟踪该文件的状态
-
[root@Linux shell_wheel]# git status;
-
# On branch master
-
# Changed but not updated:
-
# (use "git add ..." to update what will be committed)
-
# (use "git checkout -- ..." to discard changes in working directory)
-
#
-
# modified: README.md
-
#
-
no changes added to commit (use "git add" and/or "git commit -a")
可以看到README.md已经被修改过了,到底这次修改的内容与上次的内容有什么不同的,咱们可以使用git diff查看(若想退出当前状态不再看下去,按下Q键即退出;其他退出亦同。):
-
[root@Linux shell_wheel]# git diff
-
diff --git a/README.md b/README.md
-
index e76dbbd..fc838f6 100644
-
--- a/README.md
-
+++ b/README.md
-
@@ -1,2 +1,4 @@
-
# shell_wheel
-
The shell framework, the purpose is convenient debugging shell program
-
+
-
+very convenient
当然你也可以查看上次提交的信息,使用git log:
这里就不贴输出信息了
该文件还处于工作区,因此我们又可以使用add、commit操作了:
-
git add README.md
-
[root@Linux shell_wheel]# git add README.md
-
[root@Linux shell_wheel]# git commit -m "[update]"
-
[master 5faae87] [update]
-
1 files changed, 2 insertions(+), 0 deletions(-)
提交完后咱再用git status来跟踪一下(建议多使用git status)状态:
这里依然是:Git告诉咱们当前没有需要提交的修改,而且工作目录是干净的。
下面再学一个命令:git reflog,它主要用来记录你的每一次命令和commit id,这个命令非常有效,也建议大家常用。
-
[root@Linux shell_wheel]# git reflog
-
5faae87 HEAD@{0}: commit: [update]
-
e795c70 HEAD@{1}: commit: [update]
-
358e98b HEAD@{2}: commit: [init]
-
5032b89 HEAD@{3}: clone: from /BillWang139967/shell_wheel.git
可以看到咱提交的id号和提交的message被显示出来了。
加入你现在不想修改了,想回到原来那个版本,该怎么办呢?别急,这一点Git早就帮我们想好了,使用git reset --hard HEAD^
注意:这里HEAD上面^表示回到上一个版本,如果想回到前面第五个版本呢?我们可以用git reset --hard HEAD~5,当然因为我们这里只修改了1次,所以我们最多只能回到前面一个版本。打开README.md看看,是内容不是Hello Git呢?当然如果你又想修改回去,那么咱们还有办法,
用git reset --hard commit-id
-
[root@Linux shell_wheel]# git reset --hard 5faae87
-
HEAD is now at 5faae87 [update]
注意:这里的5faae87指的是commit id,上面已经说了,这里就不再赘述。
2版本回退
git checkout -- file可以丢弃工作区的修改:
命令git checkout -- readme.txt意思就是,把修改的文件文件在工作区的修改全部撤销,然后在查看状态:
git status
工作目录会变回”clean“,查看修改的文档的内容
内容又改回来了,这样就完成了一次简单的修改撤销。
其他功能
1更新fork的代码
(1)前提
本文的前提是你已经在github上fork了别人的分支,并且弄好了跟github的ssh连接。
相关配置详情参考:
(2)详细操作
-
检出自己在github上fork别人的分支到本目录下
git clone /BillWang139967/xxxxx.git
-
cd xxxxx(项目名)
-
然后增加远程分支(也就是你fork那个人的分支)名为bob(这个名字任意)到你本地。
git remote add bob /new/xxxxx.git
如果你运行命令:git remote -v你会发现多出来了一个Bob的远程分支。如下:
-
然后,把对方的代码拉到你本地。
git fetch bob
-
最后,合并对方的代码。
git merge bob/master
-
最后,把最新的代码推送到你的github上。
git push origin master
这样就完成了自己的代码更新。
阅读(2073) | 评论(0) | 转发(0) |