公司一直使用的是SVN管理代码,自己也在linux系统上搭了一个SVN服务器,用于管理自己开发的一些小项目代码。虽然一直知道git也可以很好的管理代码,但是从来没有搞过,今天简单的试了下,感觉挺好。好了,下面是测试使用git时的一些简单操作命令,对于初次使用者挺好的。如果有错误,也希望大家不吝赐教。
环境:ubuntu14.04
一、Github注册
注册就不多说了,邮箱就可以注册。
二、git安装
命令:sudo apt-get install git
三、git创建本地仓库
A.创建一个工作目录,为:StudyGit,可自定义
B.进入StudyGit,初始化一个本地的git仓库,初始化完毕后会产生一个.git的隐藏文件,该文件十分重要,主要作用是版本控制。
命令:cd StudyGit
git init
C.查看当前git的状态,主要是提示当前有无东西需要提交,创建或者复制文件。
命令:git status
D.创建一个测试文件test.txt
命令:touch test.txt
E.查看git状态
命令:git status
提示有文件可以上传。
F.把制定的文件test.txt加入到git控制下,该文件存在于“暂存区”
命令:git add test.txt
G.移除暂存区文件,如果不想讲test.txt提交,可以移除该文件
命令:git rm --cached test.txt
H.确定需要提交test.txt
命令:git commit -m “提示内容” :提示内容:操作的注释、说明,方便后期快速查找。
至此,本地创建仓库已完成。
四、提交代码到远程仓库
在上面的操作之后,代码只是存放在本地仓库中,要想将代码提交到远程仓库中,必须先要创建服务器可信用户这样git才能知道是谁提交的,才能进行版本管理。
1、配置git
命令:git config --global user.name “username” :username为提交者的名字
git config --globa user.email “email” :email为提交者邮箱
2、生成公钥
已经配置好一个可以使服务器信任的用户,此时,想要提交git仓库中的内容到远程服务器,需要在本地生成一个公钥,然后将公钥放到远程服务器的账号列表中,这样才能进行访问。
生成公钥命令为:
ssh-keygen -t rsa -C “user_email” user_email为注册github时使用的邮箱。
执行完该命令,会在~/.ssh/下生成id_rsa.pub文件。在github上的settings->SSH keys中创建ssh key,title随便写,把id_rsa.pub文件的内容全部复制即可,保存,创建。
3、添加github远程仓库
在github上add new repository,名字同为StudyGit。
4、把本地仓库和远程git仓库进行关联。
命令:git remote add origin git@github.com:username/StudyGit.git username:github注册名
5、将本地仓库push到远程仓库
命令:git push origin master
五、克隆远程仓库到本地
该操作类似SVN的checkout。
命令:git clone git@github:username/StudyGit.git username为github注册名
上述操作之后,就会在本地产生一个StudyGit文件夹,现在便可以对该仓库中添加内容了。当需要提交至远程仓库时,和上面“四”中步骤一致。
注意:应为在一个项目中,往往有多个开发者同时对一个工程代码进行更新,因此,往往在提交代码时会出错,原因是远程仓库已经更新,此时需要执行以下命令将远程仓库的分支更新到当前仓库中,之后合并分支,最后提交至远程仓库。
命令:git getch origin master
git log -p master ..origin/master
git merge origin/master
git push origin master
git常用命令:
创建本地仓库:git init
查看当前状态:git status
添加文件:git add file git add . //自动判断添加了哪些文件
删除文件:git rm --cached file
提交文件内容注释:git commit -m "提示内容"
本地仓库和git仓库关联:git remote add origin git@github.com:username/xxxx.git
将本地仓库push到远程仓库:git push origin master 如果不是新创建的,不用再add到remote
克隆远程仓库内容到本地:git clone git@github.com:username/xxxx.git
先在github上创建并写好相关名字,描述。
cd ~/coredump
git init //初始化
git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件)
git commit //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可)
git remote add origin https://github.com/JGCheng/coredump.git //增加到remote
git push origin master //push到github上
2.更新项目(新加了文件):
cd ~/coredump
git add . //这样可以自动判断新加了哪些文件,或者手动加入文件名字
git commit //提交到本地仓库
git push origin master //不是新创建的,不用再add 到remote上了
3.更新项目(没新加文件,只有删除或者修改文件):
cd ~/coredump
git commit -a //记录删除或修改了哪些文件
git push origin master //提交到github
4.忽略一些文件,比如*.o等:
cd ~/coredump
vim .gitignore //把文件类型加入到.gitignore中,保存
然后就可以git add . 能自动过滤这种文件
5.clone代码到本地:
git clone https://github.com/JGCheng/coredump.git
假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:
git fetch origin //获取远程更新
git merge origin/master //把更新的内容合并到本地分支
6.撤销
git reset
7.删除
git rm * // 不是用rm
8.查看更新日志
git log --oneline
9.查看分支合并
git log --oneline --graph
10.查看制定用户名提交的日志
git log --oneline --graph --author=xxxx
错误:
1. 在执行
git remote add origin https://github.com/JGCheng/coredump-under-Linux.git
错误提示:fatal: remote origin already exists.
解决办法:
git remote rm origin
然后在执行:$ git remote add originhttps://github.com/JGCheng/coredump-under-Linux.git 就不会报错误了
2.
git push origin master
错误提示:error:failed to push som refs to.......
解决办法:
git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去