赞
踩
配置用户名: git config --global user.name 你的用户名
配置邮箱: git config --global user.email 注册的邮箱
配置好之后,可以用git config --global --list
命令查看配置是否OK
注意:这里设置的用户签名和将来登录GitHub的账号没有任何关系。可以随便写,就是在后续操作的时候知道是谁做了那一步的操纵
在自己选择好的目录,右键鼠标点击Git Bash Here,然后输入git init
。这个目录变为git可以管理的仓库。
在刚刚创建好的本地库目录下创建一个文件
使用下列的命令,将创建的文件添加到暂存区,然后提交到仓库:
文件提交到暂存区:git add 文件名
暂存区文件提交到仓库:git commit -m ‘这里添加注释’
又暂存又提交:git commit -am '注释'
当你在代码托管网站创建好仓库后,你希望把自己的项目上传上去就需要如下操作。
git init
git remote add origin(或者自己记得住的项目名称) 远程仓库链接
git pull origin(或者自己记得住的项目名称) master
。git add .
git commit -am '注释'
git push origin(或者自己记得住的项目名称) master
在添加文件的时候,并不是每一次修改就是真的自己想要的,因此可以添加一个分支,直到自己满意了,最后再合并到主干上(master 或者 main)上。
注意:当你在终端转移到哪个分支,文件状态就会转移到当前分支。
创建分支:可以使用git branch 分支名
创建分支,git checkout 分支名
进入分支中。或者直接使用 git checkout -b 分支名
创建并进入分支
查看当前的分支:git branch
删除本地分支:git branch -D 分支名字
删除远程分支:git push origin --delete 分支名字
分支合并:git merge 想要合并的分支
意思就是你当前所在的分支与想要合并的分支融合在一起。
git 分支分为集成分支、功能分支和修复分支,分别命名为 develop、feature 和 hotfix,均为单数。
1.git主分支(master)。它是自动建立,用于发布重大版本更新
2.git开发主分支(develop)。日常开发在此分支上进行
3.git临时性分支:用于应对一些特定目的的版本开发(验证OK后,应该删除此分支)
注意事项: 一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。 feature 分支在申请合并之前,最好是先 pull 一下 develop 主分支下来,看一下有没有冲突,如果有就先解决冲突后再申请合并。
使用git status
时或出现两个情况
情况是如下图,绿色部分的状态是待提交的状态(也就是在缓存区)。红色是unstage状态。这种情况我们可以先进行git add来把本地的先提交到缓存区。
touch .gitignore
这个命令来创建文件,在这个文件内添加不想提交的文件名.后缀
但是在看git status
时会看到 .gitignore这个文件没有被跟踪,不用管这个。
出现这种情况的时候,原因是你在当前分支对这个文件做了修改,在要合并时的分支也做了修改,Git不知道要采用哪一个更改,便发生了冲突。
当你这样合并后,打开文件就变成这样了
<<<<<<< HEAD和=======之间的内容:是master分支修改的内容(准确来说是HEAD指针指向的分支修改的内容);
=======和>>>>>>> new_branch之间的内容:是new_branch分支修改的内容;
分割线之外的内容:是两个分支都没有改动的内容(如merge.txt第一行)。
怎么解决
第一步:git status
查看冲突的文件
第二部:编辑冲突文件
1、保留其中一个修改
选择你想要的分支内容,然后把其他的部分删除掉就好了。注意要把分割线都删了。
然后重新git commit -am '注释'
2、两个修改都保留
直接把分割线都删了,然后重新git commit -am '注释'
3、退出冲突状态(两个都不要)
由于合并的中间状态下将无法执行其他一些操作(如切换分支),因此要么修改文件,要么推出冲突状态
git merge --abort
该命令会使你回到执行git merge 分支之前的状态。
step1:查找最大文件
命令:git rev-list --objects --all | grep 贼长的一个编码
输出会得到这么文件的路径
step2:该文件添加到.gitignore文件
在.gitignore文件中 添加需要忽视的文件(输入文件名.后缀
)或文件夹(文件夹名/
)
step3:在提交中删除该文件
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 文件路径" --prune-empty --tag-name-filter cat -- --all
step4:重新提交 git push origin master
step5:清理垃圾
虽然上面我们已经删除了文件, 但是我们的repo里面仍然保留了这些objects, 等待垃圾回收(GC), 所以我们要用命令彻底清除它, 并收回空间,命令如下:
rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now
可能会用到的命令
1.检查是否有未提交的文件git status
:检查当前文件状态
2.查看暂存区中文件信息 git ls-files
3.删除暂存区文件git rm --cached 文件名.后缀
git remote show origin
在命令框中输入以下命令ssh-keygen -t rsa
,然后回车三下,就会在C:\Users\你的用户名.ssh 中生成密钥。此文件夹中以下两个文件
id_rsa是私钥
id_rsa.pub是公钥
注意: 如果本地还未生成SSK key,可以通过该命令生成: ssh-keygen -t rsa -C "你的邮箱"
通过命令:git remote add origin 你复制的东西
,将本地仓库和github仓库连接就好了。执行此命令后Git会自动为远程仓库设置别名为origin,推送的时候指定为origin即可。使用git remote -v
可以查看当前关联的远程仓库信息。
git push -u origin <分支名>
,通过此分支可以将本地仓库推送到指定分支。
-u解析:
-u是针对于branch(分支)的。-u的作用于本地分支与远程仓库分支的关联。既将远程仓库的指定分支设置为本地分支的upstream(上游),就是优先级的意思。例:git push -u origin master中加入-u参数表示设置本地仓库的当前分支与远程仓库的master分支相关联。其中的优点就是在我们执行此命令后执行的push/pull命令都可不需要指定仓库和分支,直接使用git push/git pull。git会自动找到本地分钟所关联的远程分支并推送代码。实现此功能有两种方法:
1.git push -u origin <分支名>
此命令在推送时设置本地分支与远程分支的关联并推送内容。-u参数使用一次即可。不需要每次推送都使用-u参数。
2.git branch --set-upstream-to=<远程分支> <本地分支>
此命令也可以实现本地分支与远程分支的关联。一般来讲前者更加实用一些,前者在确保远程分支存在时使用,所以不宜出错。后者无法确保远程分支存在。
推送到master主分支:git push -u origin master
推送到v2分支:
git checkout v2
git push -u origin v2
注意:
1.需先切换到v2分支再进行推送操作。
2.需先在Git托管平台上创建分支,建议名称与本地仓库名相同。
git remote add 自己选个远程仓库的名字 远程仓库的链接
git clone "远程仓库地址"
此命令表示根据远程仓库地址将远程仓库克隆到本地。默认是克隆master主分支到本地。也可以克隆其他分支到本地。git branch -a
使用此命令可以查看本地仓库与远程仓库的分支信息。git checkout -b <分支名> origin/<分支名>
此命令表示切换到指定分支(如果没有此分支则自动创建)并将远程仓库的指定分支克隆下来。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。