git 记住账号密码、忽略部分文件、合并分支、将远程分支拉取到本地

简介:tortoiseGit(乌龟git)图形化了git,我们用起来很方便,但是我们拉取私有项目的时候,每次都要输入用户名和密码很麻烦,这里向大家介绍怎么避免多少输入

试验环境:window10,安装的有git,tortoiseGit

首先我们找到用户目录(C:\Users\用户)下的.gitconfig打开它(window10下的.gitconfig文件位置和win7不一样)

在最后加入

[credential] 

     helper = store 

里面会有你以前配置好的用户昵称和邮箱,如果没有就加上去,最后结果是

 

 保存退出,然后pull,push下你的私有项目,以后都不需要输入密码了,其实这个时候跟.gitconfig同目录下,会产生一个.git-credentials文件,你的用户名和密码保存在里面


1.1 也可以用ssh密钥进件文件传输

 

初次安装git配置用户名和邮箱


 

初次安装git需要配置用户名和邮箱,否则git会提示:please tell me who you are.

你需要运行命令来配置你的用户名和邮箱:

$ git config --global user.name "superGG1990"

$ git config --global user.email "[email protected]"

注意:(引号内请输入你自己设置的名字,和你自己的邮箱) 此用户名和邮箱是git提交代码时用来显示你身份和联系方式的,并不是github用户名和邮箱

git使用ssh密钥


 

git支持https和git两种传输协议,github分享链接时会有两种协议可选:

git协议链接图例 : 

https协议链接图例:

       

git使用https协议,每次pull, push都会提示要输入密码,使用git协议,然后使用ssh密钥,这样免去每次都输密码的麻烦
 
初次使用git的用户要使用git协议大概需要三个步骤:
一、生成密钥对
二、设置远程仓库(本文以github为例)上的公钥
三、把git的 remote url 修改为git协议 (以上两个步骤初次设置过以后,以后使用都不需要再次设置,此步骤视以后项目的remote url而定,如果以后其他项目的协议为https则需要此步骤)

 一、生成密钥对


大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权,没有的话就要生成一个。生成公钥的过程在所有操作系统上都差不多。首先你要确认一下本机是否已经有一个公钥。

SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录。进去看看:

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts config            id_dsa.pub

看一下有没有id_rsa和id_rsa.pub(或者是id_dsa和id_dsa.pub之类成对的文件),有 .pub 后缀的文件就是公钥,另一个文件则是密钥。

假如没有这些文件,甚至连 .ssh 目录都没有,可以用 ssh-keygen 来创建。该程序在 Linux/Mac 系统上由 SSH 包提供,而在 Windows 上则包含在 MSysGit 包里:

$ ssh-keygen -t rsa -C "[email protected]"

Creates a new ssh key using the provided email # Generating public/private rsa key pair.

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

直接按Enter就行。然后,会提示你输入密码,如下(建议输一个,安全一点,当然不输也行,应该不会有人闲的无聊冒充你去修改你的代码):

Enter same passphrase again: [Type passphrase again]

完了之后,大概是这样:

Your public key has been saved in /home/you/.ssh/id_rsa.pub.
The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]

到此为止,你本地的密钥对就生成了。

二、添加公钥到你的远程仓库(github)


 

 1、查看你生成的公钥:

$ cat ~/.ssh/id_rsa.pub
ssh
-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0X6L1zLL4VHuvGb8aJH3ippTozmReSUzgntvk434aJ/v7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8vR3c8E7CjZN733f5AL8uEYJA+YZevY5UCvEg+umT7PHghKYaJwaCxV7sjYP7Z6V79OMCEAGDNXC26IBMdMgOluQjp6o6j2KAdtRBdCDS/QIU5THQDxJ9lBXjk1fiq9tITo/aXBvjZeD+gH/Apkh/0GbO8VQLiYYmNfqqAHHeXdltORn8N7C9lOa/UW3KM7QdXo6J0GFlBVQeTE/IGqhMS5PMln3 admin@admin-PC

2、登陆你的github帐户。点击你的头像,然后 Settings -> 左栏点击 SSH and GPG keys -> 点击 New SSH key

3、然后你复制上面的公钥内容,粘贴进“Key”文本域内。 title域,自己随便起个名字。

4、点击 Add key。

完成以后,验证下这个key是不是正常工作:

$ ssh -T [email protected]

Attempts to ssh to github

如果,看到:

Hi xxx! You've successfully authenticated, but GitHub does not # provide shell access.

恭喜你,你的设置已经成功了。

三、修改git的remote url


 

 使用命令 git remote -v 查看你当前的 remote url

$ git remote -v
origin https://github.com/someaccount/someproject.git (fetch)
origin https://github.com/someaccount/someproject.git (push)

如果是以上的结果那么说明此项目是使用https协议进行访问的(如果地址是git开头则表示是git协议)

你可以登陆你的github,就像本文开头的图例,你在上面可以看到你的ssh协议相应的url,类似:

 

复制此ssh链接,然后使用命令 git remote set-url 来调整你的url。

git remote set-url origin [email protected]:someaccount/someproject.git

然后你可以再用命令 git remote -v 查看一下,url是否已经变成了ssh地址。

然后你就可以愉快的使用git fetch, git pull , git push,再也不用输入烦人的密码了

2.git 提交忽略某个文件或文件夹

1.登录gitbash命令端进入本地git库目录

Administrator@PC201601200946 MINGW32 /d/gitrespository/crmweb (master)

2.创建.gitignore

3.修改文件,添加忽略正则

  .idea //忽略.idea文件夹及文件夹下文件

  *.iml //忽略以.iml结尾的文件

  

【例子】

# 忽略*.o和*.a文件

 *.[oa]

# 忽略*.b和*.B文件,my.b除外

*.[bB]

!my.b

# 忽略dbg文件和dbg目录

dbg

# 只忽略dbg目录,不忽略dbg文件

dbg/

# 只忽略dbg文件,不忽略dbg目录

dbg

!dbg/

# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内

/dbg

# 以'#'开始的行,被视为注释.

 * ?:代表任意的一个字符
    * *:代表任意数目的字符
    * {!ab}:必须不是此类型
    * {ab,bb,cx}:代表ab,bb,cx中任一类型即可
    * [abc]:代表a,b,c中任一字符即可
    * [ ^abc]:代表必须不是a,b,c中任一字符

4.提交本地版本库,推送到远程项目,方便协作,项目管理

添加忽略之后,已经提交到版本库中的文件是无法忽略的。只能clone到本地,删除后,再进行忽略。

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

 正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
 git update-index --assume-unchanged PATH    在PATH处输入要忽略的文件。


3.git  分支代码合并到主干上

假如我们现在在dev分支上,刚开发完项目,执行了命令下列命令

git  checkout dev
git  add .
git  commit -m ‘dev'
git push -u origin dev
  • 1
  • 2
  • 3

然后我们要把dev分支的代码合并到master分支上 该如何? 
首先切换到master分支上

git  checkout master
  • 1

如果是多人开发的话 需要把远程master上的代码pull下来

git pull origin master
  • 1

如果是自己一个开发就没有必要了,为了保险期间还是pull

然后我们把dev分支的代码合并到master上

git  merge dev
  • 1


如果是已上线项目,切出的分支多人团队开发,代码会有冲突,则先要解决冲突,才能提交。


然后查看状态

git status
  • 1
On branch master
Your branch is ahead of 'origin/master' by 12 commits.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean
  • 1
  • 2
  • 3
  • 4

上面的意思就是你有12个commit,需要push到远程master上 
执行下面命令即可

git push origin master

4.git 拉取远程分支到本地


步骤:

1、新建一个空文件,文件名为hhhh


2、初始化

    git init


3、自己要与origin master建立连接(下划线为远程仓库链接)

git remote add origin [email protected]:XXXX/nothing2.git

远程仓库链接在github这里,如下图红色框内所示的链接:


输入命令:


4、把远程分支拉到本地

git fetch origin dev(dev为远程仓库的分支名)

下图红色勾选的为可使用的分支名


下面拉取远程的develop分支,命令:


5、在本地创建分支dev并切换到该分支

git checkout -b dev(本地分支名称) origin/dev(远程分支名称)

命令:


6、把某个分支上的内容都拉取到本地

git pull origin dev(远程分支名称)

命令:


最后,回到本地文件夹hhhh查看,已完成拉取远程某个分支到本地啦!得意








git 拉取远程分支到本地

猜你喜欢

转载自blog.csdn.net/qq_31812703/article/details/79424832