Git使用之码云的操作步骤、忽略文件

参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00150154460073692d151e784de4d718c67ce836f72c7c4000

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

Sourcetree的使用步骤

文件-》新建,弹出git配置,建立连接,设置本地仓库。

功能说明:

提交:即将你的代码提交到自己的本地分支。

拉取:从服务器上拉取指定的分支到本地。

推送:将本地分支的更改,推送到服务器。

抓取:主要是获取服务器上分之的变化。

分支:基于一个分支,建立自己的本地分支。

合并:合并其他分支到自己的本地分支。

暂存:存储当前工作区的变更。

左边列表主要用到的是:分支和远端这两个,其他的读者可以自己研究。

分支:列出了本地的分支,可以在此切换分支,切换后可以跟踪该分支的变化。

远端:列出服务上代码的分支。

注意:

1、提交只是提交到自己的本地分支,并没有提交到远端的服务器,在确认修改无误后需要使用推送,然后你的修改才更新到远端。

2、在多人协作开发的时候,开发者应该建立自己的开发分支,功能开发后,由项目管理人员将功能统一合并到一个单独的分支,打包发布的时候,应该建立一个发布分支。等到发布完成,将修改的功能合并到主分支。

3、在合并的时候可能出现冲突,需要合并者解决了冲突后,代码能编译过之后提交。

git完整操作:

http://blog.csdn.net/javafreely/article/details/18217273

https://blog.csdn.net/u011146511/article/details/77472378

码云文档:http://git.mydoc.io/?t=180845

git add.   添加到暂存区

git commit    提交到本地仓库

git push   提交到远程仓库

生成并部署SSH key

1.如何生成ssh公钥

你可以按如下命令来生成 sshkey:

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key

查看你的 public key,并把他添加到码云(Gitee.com) SSH key添加地址

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

添加后,在终端(Terminal)中输入

ssh -T git@gitee.com

若返回

Hi xxxx! You've successfully authenticated, but GITEE.COM does not provide shell access.

则证明添加成功。

注意:在以后的操作中,如果在配置SSH以后,操作还是提示 Enter passphrase for key '/Users/xx/.ssh/id_rsa':     说明在我们生成key的时候设置了密码,导致每次操作git都需要输入密码(这一块刚开始也不太在意)。解决方法:

ssh-keygen -p -P 123456 -N '' -f ~/.ssh/id_rsa

123456就是之前生成key的时候设置的密码,这里只要重新设置密码为空 '' ,下次就不要输入密码了。

=====xcode中的操作:

https://my.oschina.net/zxs/blog/142544

本地初始化一个项目

 取消全局配置:

git config --global --unset user.name

git config --global --unset user.email

查看全局配置:git config --global --edit

方式一:在本地创建一个项目-》和远程仓库建立连接-》git pull拉取远程仓库的代码-》本地代码提交到远程仓库

1.首先,你需要执行下面两条命令,作为 git 的全局基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中。

git config --global user.name "你的名字或昵称"(这里填写码云的用户名名)
git config --global user.email "你的邮箱"

2.然后在你的需要初始化版本库的文件夹中执行:

//初始化本地仓库cd 本地代码目录git init (如果提示已经存在git ,执行rm -rf .git

目前 Gitee 支持使用 HTTPS协议 和 ssh 协议 进行代码的推送/拉取。两种协议的差别仅在于同一个仓库使用不同协议时的地址不同,以及对应的授权实现不同。

https 协议 和 ssh 协议在使用上的差别

使用 https 协议 克隆 对初学者来说会比较方便 ,复制 https url 然后到 git Bash 里面直接用 clone 命令克隆到本地就好了,但是 每次fetch和push代码都需要输入账号和密码 ,这也是 https 协议 的麻烦之处。

而使用 SSH 协议 克隆需要在克隆之前先配置和添加好 SSH key,因此, 如果用户想要使用 SSH url 克隆的话,必须是这个仓库的拥有者 。

另外,使用 SSH 协议 默认是每次 fetch 和 push 代码都不需要输入账号和密码。

3.//第一次提交或者拉取代码前需要和远程仓库建立联系

git remote add origin <你的项目地址> // : 项目地址形式为 :https ://gitee .com/xxx/xxx.git或者 git @gitee . com: xxx/xxx.git

这样就完成了一次版本你的初始化。

4.拉取远程仓库代码

进入你已经初始化好的或者克隆项目的目录,然后执行:git pull origin master  

如果上面的命令不行用这个 git pull --rebase origin master
如果报错fatal: refusing to merge unrelated histories(本地没有Readme文件)使用: git pull origin master --allow-unrelated-histories

提交代码:<这里需要修改/添加文件,否则与原文件相比就没有变动>

5. 添加文件到本地暂存区git add . 

6.提交到线上本地仓库git commit -m "第一次提交"

如果出现Changes not staged for commit:错误,使用git commit -am "第一次提交"

7.提交到远程仓库由于远程库是空的,我们第一次推送master分支时,加上了-u参数,(git push -u origin master) ,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。git push origin master

然后如果需要账号密码的话就输入账号密码(https的协议需要登录账号(邮箱)和密码,ssh协议不需要账号密码),这样就完成了一次提交。

8、看到上传代码出现"Writing objects: 100%" ,则表示上传成功。

注意:按照本文档新建的项目时,在码云平台仓库上已经存在 readme 文件,故在提交时可能会存在冲突,这时您需要选择的是保留线上的文件或者舍弃线上的文件,如果您舍弃线上的文件,则在推送时选择强制推送,强制推送需要执行下面的命令:

git push origin master -f

如果您选择保留线上的 readme 文件,则需要先执行:

git pull origin master

然后才可以推送,如果发生冲突,则需要先解决冲突,关于如何处理冲突

方式二:git clone 把远程仓库的代码克隆到本地-》在本地的仓库中和.git文件夹平级,创建项目-》提交到远程仓库

1. cd  swift文件夹

2. git  init  (如果提示已经存在git ,执行rm -rf .git)

3. git  clone  "码云仓库地址"

4. 修改代码后git add .

5. git commit -m "注释"

6. git pull origin master

===========分支:

五部走:分支创建  ->  切换  ->  提交  ->  合并  ->  删除

1.先创建一个新分支提交改动

 git branch newbranch  

然后输入这条命令检查是否创建成功

 git branch  

这时终端输出

  1. newbranch  
  2. master  

这样就创建成功了,前面的*代表的是当前你所在的工作分支。我们接下来就要切换工作分支。

git checkout newbranch  

注:也可以使用下面的命令,相等于上面的两部;

 git checkout -b newbranch  

这样就切换完了,可以   git branch 确认下。然后你要将你的改动提交到新的分支上。 

 git add .  

 git commit -a  

此时可以  git status 检查下提交情况。如果提交成功,我们接下来就要回主分支了,代码和之前一样。 

 git checkout master  

然后我们要将新分支提交的改动合并到主分支上

 git merge newbranch  

合并分支可能产生冲突这是正常的,虽然我们这是新建的分支不会产生冲突,但还是在这里记录下。下面的代码可以查看产生冲突的文件,然后做对应的修改再提交一次就可以了。

 git diff  

我们的问题就解决了,接下来就可以push代码了。

 git push -u origin master  

新建分支的朋友别忘了删除这个分支,不放心的话可以git branch查看下。

 git branch -D newbranch  

如果想保留分支只是想删除已经合并的部分只要把大写的D改成小写的d就行了。

解决每次输入密码的问题:

https 方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受 https 带来的极速

设置记住密码(默认15分钟):

git config --global credential.helper cache
--global credential.helper cache

如果想自己设置时间,可以这样做:

git config credential.helper 'cache --timeout=3600'
.helper 'cache --timeout=3600'

这样就设置一个小时之后失效

长期存储密码:

git config --global credential.helper store
.helper store

增加远程地址的时候带上密码也是可以的。(推荐)

http://yourname:password@gitee.com/name/project.git
//yourname:password@gitee.com/name/project.git

补充:使用客户端也可以存储密码的。

如果你正在使用ssh而且想体验https带来的高速,那么你可以这样做: 切换到项目目录下 :

cd projectfile/
 projectfile/

移除远程ssh方式的仓库地址

git remote rm origin
 remote rm origin

增加https远程仓库地址

git remote add origin http://yourname:password@gitee.com/name/project.git remote add origin http://yourname:password@gitee.com/name/project.git

处理代码冲突:

http://git.mydoc.io/?v=16912&t=83148

版本回退:

http://git.mydoc.io/?t=154703

Git 仓库的基本操作

1.修改仓库名

一般来讲,默认情况下,在执行clone或者其他操作时,仓库名都是 origin 如果说我们想给他改改名字,比如我不喜欢origin这个名字,想改为 oschina 那么就要在仓库目录下执行命令:

git remote rename origin oschina

这样 你的远程仓库名字就改成了oschina,同样,以后推送时执行的命令就不再是 git push origin master 而是 git push oschina master 拉取也是一样的

2.添加一个仓库

在不执行克隆操作时,如果想将一个远程仓库添加到本地的仓库中,可以执行

git remote add origin  仓库地址

注意: 1.origin是你的仓库的别名 可以随便改,但请务必不要与已有的仓库别名冲突 2. 仓库地址一般来讲支持 http/https/ssh/git协议,其他协议地址请勿添加

3.查看当前仓库对应的远程仓库地址

git remote -v

这条命令能显示你当前仓库中已经添加了的仓库名和对应的仓库地址,通常来讲,会有两条一模一样的记录,分别是fetch和push,其中fetch是用来从远程同步 push是用来推送到远程

4.修改仓库对应的远程仓库地址

git remote set-url origin 仓库地址

一个本地仓库同时关联github和gitee远程库:

注意事项:远程库名称origin要改名称。

参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00150154460073692d151e784de4d718c67ce836f72c7c4000

因为git本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。

使用多个远程库时,我们要注意,git给远程库起的默认名称是origin,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。

1. cd 项目目录  

2.  git init

3.先关联GitHub的远程库:

git remote add github git@github.com:xxx01/program.git

注意,远程库的名称叫github,不叫origin了。

拉取远程仓库代码  git pull origin master ,不成功就用 git pull origin master --allow-unrelated-histories

4.接着,再关联码云的远程库:

git remote add gitee git@gitee.com:xxx01/learngit.git

同样注意,远程库的名称叫gitee,不叫origin

如果添加第二个远程库不成功(提示publickey错误),可以使用https形式的远程库地址。

拉取远程仓库代码  git pull origin master ,不成功就用 git pull origin master --allow-unrelated-histories,也可以尝试不执行此步骤,直接执行下面的操作。

现在,我们用git remote -v查看远程库信息,可以看到两个远程库:

git remote -v
gitee    git@gitee.com:xxx01/learngit.git (fetch)
gitee    git@gitee.com:xxx01/learngit.git (push)
github    git@github.com:xxx01/program.git (fetch)
github    git@github.com:xxx01/program.git (push)

5.如果要推送到GitHub,使用命令:

git push github master

如果要推送到码云,使用命令:

git push gitee master

这样一来,我们的本地库就可以同时与多个远程库互相同步:

同一电脑同一账号关联同一平台多个仓库:用的是同一个账户公钥

1.

生成一个秘钥对:

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"    这里生成后的默认地址是:~/.ssh/id_rsa.pub

cat ~/.ssh/id_rsa.pub

2. 把公钥id_rsa.pub的内容填写到码云上

3.配置用户名和邮箱

 git config --global user.name "你的名字或昵称"(这里填写码云的用户名名)

 git config --global user.email "你的邮箱"

4. cd 项目目录1

   git init

5. 建立远程仓库连接

git remote add 仓库名1 git@gitee.com:xxx/program01.git

6. git pull 仓库名1 master

7. git add .

8. git commit -m "注释"

9. git push 仓库名1 master

10. 把3-9步骤重复一遍,但是项目目录1远程仓库连接需要修改(git remote add 仓库名2 git@gitee.com:xxx/program02.git)。

11.以后的操作只需要cd  切换一下目录,其他操作都一样。

不同电脑同一个账号上配置账户SSH:(账户SSH可以上传和拉取,仓库SSH只能拉取不能上传)

在两台电脑上分别生成ssh公钥,然后把公钥都添加到码云账户中安全设置下的ssh公钥。然后和在单台电脑上的使用方法一样。

同一台电脑不同账号配置多个SSH、git:可以是相同平台不同账号,不同平台不同账号

使用SSH与客户端连接。如果是单用户,生成密钥对后,将公钥保存至码云,每次连接时SSH客户端发送本地私钥(默认~/.ssh/id_rsa)到服务端验证。

1.生成公钥

生成一个秘钥对:

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"    这里生成后的默认地址是:~/.ssh/id_rsa.pub

cat ~/.ssh/id_rsa.pub

生成另一个秘钥对:

ssh-keygen -t rsa -C "xxx@xx.com" -f ~/.ssh/id_rsa_ytx
cat ~/.ssh/id_rsa_ytx.pub

2.在不同的账号中添加公钥

3.默认SSH只会读取id_rsa,所以为了让SSH识别新的私钥,需要将其添加到SSH agent(代理),两个秘钥都需要添加

ssh-add  ~/.ssh/id_rsa_ytx

ssh-add  ~/.ssh/id_rsa

4.添加config配置文件分别映射不同的账户,进入~/.ssh目录,新建config文件,并添加相应的内容:

cd /Users/HaokeMaster/.ssh

touch config

open config

config中添加的内容:

# 一个账号
Host one
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa  # 指定特定的ssh私钥文件

# 另一个账号
Host ytx
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_ytx  # 指定特定的ssh私钥文件

5. 执行 ssh -T git@gitee.com

             ssh -T git@ytx

出现 Hi XXX! You've successfully authenticated, but GITEE.COM does not provide shell access. 表示成功。

6. cd 项目路径

7.git init

8.

和配个单个Git帐号的方式不同,这里我们需要为每个项目分别配置,所以要命令行进入仓库文件夹再设置。第一种情况是先从Git上pull仓库下来,第二种情况是本地初始化Git仓库,总之进入改仓库文件夹后:

git config --local user.name "你的名字"
git config --local user.email "你的邮箱"

如果是多个项目就需要挨个配置,不过我们一般是pull一个项目就配置一下,也仅仅需要配置一次即可。

注意配置单个Git帐号时,是不进入项目文件夹就可以,不使用-–local,而是使用-–global就可以全局配置。

9. git remote add origin "git@ytx:xxx/xx.git"      在使用的时候,需要把原来的gitee.com替换成ytx(config配置中的Host);默认的那个账号可以不替换,因为默认会找到~/.ssh/id_rsa

10. git pull --rebase origin master

11. git add .

12.  git commit -m "注释"

13. git push -u origin master

14.以后只要cd 到相应的项目目录,就可以直接使用命令操作了。

.DS_Store是Mac系统中产生的一个隐藏文件,记录文件或目录的一些自定义属性,没什么用,如果有关于这个文件的报错,码云仓库中这个文件可以直接删除掉:

删除命令:find . -name '*.DS_Store' -type f -delete

禁止生成命令:defaults delete com.apple.desktopservices DSDontWriteNetworkStores

开启生成命令:defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

多人协作:

打开码云私有库,点击右上角的管理,—》左侧的仓库成员管理-》开发者-》右侧的添加仓库成员,邀请成员-》

被邀请人扫上面的二维码或其他方式收到邀请,登录码云账号提出申请,-》同意之后,被邀请人的私有仓库下就会多一个仓库。

=========冲突的解决========

报错error: Your local changes to the following files would be overwritten by merge: ......

原因:本地项目文件有改动,并且没有commit ,所以从远程仓库拉取时,造成了与远程文件冲突。例如:其他人修改了xxx代码并提交到版本库中去了,而你本地也修改了xxx代码,这时候你进行git pull操作就好出现冲突了,解决方法,在错误提示中也说的很明确。

解决方法有两种:一是保留本地修改的代码(推荐);

步骤如下:
git stash                           将工作区恢复到上次提交的内容,同时备份本地所做的修改
git pull origin master      拉取服务器的代码
git stash pop                   将之前本地做的修改应用到当前工作区

二是直接拉取服务器的(但是本地的修改会丢失,或者先吧本地修改的地方找一个地方记录下来,拉取服务的代码后,再一步一步的修改);

git reset --hard //回滚到上一个版本

git pull origin master   拉取服务器的代码

一些命令的解释:

git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。

git pull:拉取服务器上的代码;

git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。

git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。

git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

xcode中添加忽略文件.gitignore

按shift + command + .可以查看隐藏文件,再次可以隐藏

1.cd到项目,创建.gitignore文件:

 touch .gitignore

open .gitignore

2. 添加以下内容:

# Xcode

.DS_Store

build/ *.pbxuser

!default.pbxuser

*.mode1v3

!default.mode1v3

*.mode2v3

!default.mode2v3

*.perspectivev3

!default.perspectivev3

#*.xcworkspace

#!default.xcworkspace

xcuserdata

profile

*.moved-aside

DerivedData

.idea/

*.xcuserstate

# Pods - for those of you who use CocoaPods

#Pods

java   Intellij Idea中忽略文件的操作:

Intellij Idea-》preferences-》选择plugs,在右边搜索:.ignore,点击Install,安装完成后就可以愉快的使用了,不过在此之前得重启IDEA。在项目上右键或者菜单栏File->New ->.ignore file ->.gitignore file(Git) 。

以后再.gitignore文件中自己添加要忽略的内容:

配置gitignore文件,配置内容如下:
# IntelliJ project files
.idea
*.iml
out
gen
/.apt_generated/
/.classpath
/.factorypath
/.project
/.settings/
/.springBeans
/target/
/.gitignore
/user-profile-analysis.iml
/.idea
/README.md
.DS_Store

git add .

git commit -m "添加忽略文件"

git push origin master 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值