Git与Github简单使用

GitGithub简介:

gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub

Git是分布式版本控制系统,其第一个版本是由linux系统创始人Torvalds花了10天时间创造的,并且开源给所有人免费试用。3年后,Tom Preston使用Git作为版本控制软件创建了http://Github.com,一个专门托管代码并且可以实现版本控制的网站。(缘由请自行了解)

Tom之所以把网站叫做Github,是因为其核心部分版本控制是用Git来处理的。但是 为什么有人回复调侃Github是全球最大男性交友网站呢?那是因为Github的注册用户大都是男生,而且彼此之间可以相互关注(类似于微博)。

 

Window下的gitgithub

Git命令:

创建版本库:

$ cd d:/git  进入操作目录

$ mkdir myProgram  新建文件夹

$ cd myProgram  进入新建的文件夹

$ echo ‘My program is alive.’ > index.html  新建文件夹下创建一个html文件并初始化内容

$ git init  将所在目录转化为git版本库且文件默认是临时文件不会放在版本库中

将文件添加到版本库中:

$ git add index.html  指定文件添加到版本库中

$ git add .  将当前目录及子目录都添加到版本库中

配置个人用户名与电子邮件,提交代码的标识:

$ git config –global user.name “name”

$ git config –global user.email [email protected]

查看git配置:

$ git config –list

提交文件:

任何编辑之后,提交之前都要执行git add命令去更新索引

$ git commit –m “Test using git to commit file.”  提交先要进行git add操作

此处可以设置Git_Editor环境变量来在交互式编辑器(vim)中编辑内容

设置方法:export GIT_EDITOR = vim

$ git commit –am ”提交信息合并git add git commit操作(适用于比较小的变更)

查看本地状态,是否有文件做了修改还没提交:

$ git status (已经add操作/commit后又修改过,但目前没commit操作)

查看某个文件所做的修改:

$ git diff app/XXX/XXX/XXX.py

查看提交的日志修改记录:

$ git log  (一系列单独提交的历史)

$ git log –p 查看前后差异

$ git log --pretty=online  查看日志

$ git log 文件/目录  查看指定文件/目录相关的日志

(当前面出现某个冒号无法输入命令按q键)

查看某次修改的文件:

$ git show commit_id  (省略提交码默认显示最近一次提交)

$ git show-branch –more=10  当前开发分支简洁的单行摘要,最新10个版本(即提交日志)

查看本次代码与上一次的区别:

$ git diff HEAD 查看工作树与最新提交的差别

$ git diff查看工作树与暂存区的差别

”+“  表示新添加的行

”-“  表示被删除的行

$ git diff xxx.txt  查看和上一版本变化的内容

提交修改:

$ git add –all && git commit –m ‘修复某个问题’ && git pull && git push

修改提交信息:

$ git commit –amend

$ touch 文件名  直接新建一个文件夹

$ vi 文件名  新建一个文件并进入编辑状态(已存在文件直接进入编辑状态)

$ rm –rf example.git  强制删除

$ git rm  表示删除文件  git commit  提交删除操作

$ git rm aaa.html bbb.txt 删除版本库内的aaabbb两个文件

$ ls /git rm aaa.txt /git commit –m “Remove aaa.txt”  可连续输入

重命名文件:

$ git mv index.html indexNew.html  先执行mv操作

$ git rm index.html  因为rm会将index.html永久删除

$ git add indexNew.html

$ git commit –m “Move index.html to indexNew.html” 

(在任何情况下,暂存的变更必须随后进行提交)

克隆仓库:

$ git clone git://github.com/sth/sth.git

会在当前目录下创建一个名为sth的目录,其中包含一个.git的目录,用于保存下载下来的所有版本记录。

也可以直接在末尾指定新建的目录名称,如:git clone git://github.com/sth/sth.git mygitsth

$ git clone program clone_program

$ git clone [email protected]:/option/git/provider1.git provider1  克隆远程仓库

$ git clone \(回车)git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

克隆网站上的版本库副本:

$ git reset --hard HEAD^  回退到上一个版本

$ git reset --hard 2313121 回退到指定版本

$ git checkout xxx.txt  未放入暂存区恢复到版本库,放入暂存区恢复成暂存区

$ ssh-keygen –t rsa –C “邮箱”  远程版本库创建公钥

$ git branch 列表显示分支名,所有分支前有*

$ git log --graph  图表形式查看分支

$ git branch 分支名  新建分支

$ git checkout 分支名  切换分支

$ git checkout –b 分支名  新建并切换分支

$ git branch –D 分支名  删除分支

合并分支:

$ git checkout master  先切换回主分支

$ git merge –no—ff feature –A  然后合并子分支

(–no—ff参数用于在历史记录中明确记录下本次分支合并)

更改提交的操作:

$ git reflog  查看当前仓库的操作日志,包括所有操作,可根据哈希值进行历史回溯

$ git reset –hard hash_value(87d6y9q)  根据哈希值实现推进历史

$ git commit –amend 修改上一次提交信息

分支的合并提交信息可以为:Merge branch 分支名

解决冲突:

$ git conflict_file  打开冲突的文件

显示:

<<<<<<< HEAD

 - feature-A  当前HEAD的内容

=======

 -fix-B  要合并的分支中的内容

>>>>>>> fix-B

可以手动改成:

# git conflict_file

 -feature-A

 -fix-B

实际项目应该注意修改

压缩(更改)历史

$ git rebase –I HEAD~2 

将当前操作与前一个提交合并压缩成一个历史记录

会在编辑器中打开两个最新的历史记录,将后一个前面的pick改为fixup

远程仓库:

github上创建一个远程仓库,以首个开发者身份把已有仓库推送至远程仓库

将它设置成本地仓库的远程仓库,与远程仓库建立连接

$ git remote add origin https://github.com/userName/repositoryName.git

或者:

$ git remote add origin [email protected]:userName/repositoryName.git

推送到远程仓库,-u是为了将origin仓库的master分支设置为本地仓库当前分支的上游

$ git push –u origin master  推送至master分支

$ git push –u origin branchName  将本地仓库中的分支push给远程仓库并保持分支名称不变

$ git push origin:branchName  删除远程仓库(github的仓库)上的分支

以后来开发者的身份从远程仓库获取

$ git clone [email protected]:userName/repository.git(默认处于master分支下)

$ git branch –a  查看获取后的本地仓库和远程仓库的分支信息

$ git checkout –b 本地新建分支名 origin/remote_branch_name  获取远程分支到本地仓库

$ git push  像本地的分支提交修改,推送分支,以master为准,进行本地origin同步

$ git push origin remote_branch_name  在推送分支之前,先要获取最新的远程仓库分支

vi/vim基本使用方法:vimvi的升级版

git bash中输入:git commit 会进入vim编辑器,且处于命令行模式

i进入插入模式

输入内容后按esc键转切回命令行模式

按回车键提交成功

git bash下打开notpad++等文本编辑器

GitHub上发布版本库:

创建GitHub的版本库:登陆GitHub账户(任意位置单击logo可跳转到个人dashboard页),单击Start a project

为新的版本库命名: 唯一要填的字段是Repository name(项目名),项目将会出现在 https://github.com/GitHub/用户名/项目名

初始化版本库: 现在版本库已经创建了还没有内容,可根据github提示去 推送内容。2步(git remote add origin 地址(git remote add origin https://github.com/yourusername/yourprojectname.git) / git push -u origin master

$ ssh –T [email protected]  git bash下输入命令查看本地库与github认证

$ cd parent_dir  首先进入要上传文件目录的上一级目录

$ git init  把当前目录变成git可以管理的目录

$ ls –a  可以查看当前文件夹下是否包含.git的文件夹,若包含则成功

$ git add ./git add /python/test/test.txt  使用git add添加文件到本地暂存库

$ git commit –m ‘note’  将文件提交到仓库

(引号里是提交的说明,若忘记参数-m则会自动打开vim编辑器)

$ git remote add origin 你的远程库地址(如:https://github.com/userName/repositoryName.git

$ git remote rm origin  删除origin

$ git remote add origin https://github.com/userName/repositoryNameNew.git  重新添加origin

$ git pull --rebase origin master  远程库与本地库合并

(如果远程库不为空必须做这一步,否则后面的提交会失败)

$ git push –u origin master  将最新的修改推送到远程仓库

origin是远程仓库名字,master是远程仓库分支)

注意:我们第一次push的时候,加上参数-ugit就会把本地的master分支与远程的master分支进行关联起来,以后的push操作就不需要加上-u参数了。

如果提示:

  1. hint: before pushing again.  
  2. hint: See the 'Note about fast-forwards' in 'git push--help' for details.

则输入下面命令即可:

$ git push –u origin master -f

$ git clone /username/repositoryName.git  将仓库地址复制,从git服务器所在主机上的其他账户获取git服务器上面的文件,直接gitclone+git仓库的路径

git 仓库删除

$ find . -name “.git” | xargs rm –Rf  本地仓库目录下命令行删除根目录下.git文件

或者手动删除残留的.git文件

$ rm –rf https://github.com/repositoryDir/repositoryName.git  远程仓库删除

或者在github的对用的库中到setting删除库

git 添加ssh认证到github

     1.创建ssh key,在C盘用户目录下生成.ssh目录,其内包括id­_rsaid_rsa.pub两个文件

$ ssh-keygen –t rsa –C [email protected]  一路回车

参数:-t 指定密钥类型,默认是rsa,可以省略。-C设置注释文字,比如邮箱。

    2.登录github,打开Settings,再选中SSHGPG KEYS,点击右上角的New SSH Key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,

最后点击Add SSH key,就完成了SSH Key的加密。

     3.测试SSH连接

$ ssh –T [email protected]  此处就是[email protected]

     4.将已有github项目换成ssh

$ git remote rm origin

$ git remote add origin [email protected]:账户名/项目名.git

$ git push origin

Pycharmgithub连接

Settings->github->Host:Login:Pwd->test button for test

->git->C:\Program Files\Git\bin\git.exe

VCS->import into version control->share project on github

->NewRepoName:RemoteName:Description->commit message

->ok->update code into Github successfully.

 

Checkout from version control->git->git repository url->test

 

相关参考链接:

百度百科.

廖雪峰官网git教程.

git简明指南:http://rogerdudler.github.io/git-guide/index.zh.html

Github简明教程:https://www.runoob.com/w3cnote/git-guide.html

如何高效利用GitHubhttp://www.yangzhiping.com/tech/github.html

Git 常用命令使用大全:https://www.cnblogs.com/Gxiaopan/p/6714539.html

webstorm中使用githttp://blog.csdn.net/chenxueshanblog/article/details/78722789

在git bash下打开文本编辑器https://www.cnblogs.com/BugBrother/p/6963484.html

Windowsgit的使用:https://blog.csdn.net/chenxueshanBlog/article/details/78915338

WindowsGit命令行基本使用:https://blog.csdn.net/u012111923/article/details/80797661

 

猜你喜欢

转载自blog.csdn.net/GZHarryAnonymous/article/details/82753443