进入这个文件夹,单机右键点击bash,然后会出来命令框,接下来开始打命令行了:
1先配钥匙(钥匙的作用是把你电脑上面的git和github连接)
$ ssh-keygen -t rsa -C "your_email@youremailcom" //注意啊孩子,双引号里面是你的邮箱。填你常用的就行。还有enter代表执行。
配钥匙的过程中不管你看到什么一路enter就好。然后你会在C:\Users\Administrator\ssh目录下面看到三个东西,其中一个是pub格式的,用记事本打开它,复制。然后来到你的github,在setting里面找到ssh
keys把你刚才复制的钥匙给粘贴了,title随便写一个。
2建仓库
$ git init
打完这个命令行敲回车,你会发现你的这个文件夹下面多了一个git文件夹,没有的在查看里面把隐藏的文件给显示出来就好了。
3设置用户名和邮箱。
1 $ git config --global username "your name"
2 $ git config --global useremail "your_email@youremailcom"
4添加远程地址
$ git remote add origin git@githubcom/你的github用户名/仓库名git
例如,我的github的用户名是jikiuj仓库名是first git test,然后就这样打
$ git remote add origin git@githubcom/jikiuj/first-git-testgit
发现了吗?仓库名的空格用 - 来代替
好了,第4个命令行打完之后呢进入git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。马上成功了,来吧。
5新建一个txt文本,里面写点东西。我的命名为read
6add和commit
$ git add readtxt
$ git commit -m "这是你commit的原因,写了方便你我他"
7push推送到你的github
$ git push -u origin master如何克隆回购所有标签和分支? 我发现的唯一方式是镜像的回购协议: $ git clone --mirror git@myhost:mybackupgit
这将创建一个本地mybackupgit目录,它知道所有标签/分支(我得到整个列表),但它不是一个回购协议: $ git checkout mytag
fatal: This operation must be run in a work tree
答案请参考如下代码:
git clone git@myhost:mybackupgit newdirectory
cd newdirectory
git fetch origin refs/remotes/:refs/remotes/
git init
现在git branch -a显示我所有的远程分支机构。 我不知道如果git init这里需要的,或者如果它是只需要在git init --barevariant(见下面的shell脚本的输出线),但我相信它损害什么,如果它是没有必要把它留在。 在这个过程中我的主要的原因是为了让我的SVN标签/分支复制过来,而不是只拥有master指着SVNtrunk而不必解析整个SVN历史(很慢的有很多历史,标签和分支的项目)。所以复制了我 git svn init -s " CodeGonet
git svn fetch
git checkout master
为了加快该过程,我创建了一个shell脚本: #!/bin/sh
#
# git-clone-svn-based-reposh:
#
# clones a git-svn based repo including all SVN commits without pounding
# the SVN server for hours (just a quick refresh taking seconds)
#
usage_exit ()
{
echo "Usage: $0 <git-repo> <dest-directory> <svn-project>"
exit 1
}
if ! git ls-remote "$1" > /dev/null 2>&1
then
echo "No git repo found at: $1"
usage_exit
fi
if [ -r "$2" ]
then
echo "File or directory already exists: $2"
usage_exit
fi
if ! svn ls "$3" 2> /dev/null | grep -q trunk
then
echo "No SVN project found at: $3"
usage_exit
fi
# create new bare git repo
mkdir "$2"
cd "$2"
git init --bare git
# fetch everything from backup
git remote add backup "$1"
git fetch backup refs/remotes/:refs/remotes/
git fetch backup refs/heads/:refs/heads/
git fetch backup refs/tags/:refs/tags/
# disable future fetching from backup
# setup to push all remote refs to backup by default
git config remotebackupfetch do_not_fetch_from_backup
git config remotebackuppush '+refs/remotes/:refs/remotes/'
# initialize git repo to usable (non-bare) state
git init
# update SVN references
git svn init -s " CodeGonet
git config svnauthorsfile $HOME/projects/authorstxt
git svn fetch
# update master to current SVN trunk
git checkout master
git svn rebase
# update ignore properties from SVN
git svn show-ignore >> git/info/exclude
为了创建从现有的混帐SVN回购协议这样的备份: # create a bare backup repo at git@myhost:mybackupgit
git remote add backup git@myhost:mybackupgit
git config remotebackupfetch do_not_fetch_from_backup
git config remotebackuppush '+refs/remotes/:refs/remotes/'
git push backup那个只是profile的设置。 要修改$HOME,必须按Windows的方式,即创建环境变量,Home,然后设置正确的路径。
My Computer->Properties->Advanced->Environment Variables->User Variable, 添加Home,指定其值为D:\myjs。点击OK,退出。 然后重新开启GITBASH即可。 ~good luck~生成SSH密钥过程:
1:查看是否已经有了ssh密钥:cd ~/ssh
如果没有密钥则不会有此文件夹,有则备份删除
2:生成密钥:
按3个回车,密码为空。
最后得到了两个文件:id_rsa和id_rsapub。
3: 复制id_rsapub里的ssh key 到Gitlab 设置里的ssh 添加,(直接复制包括空格不改)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)