Git Bash安装及常规使用

1、远程仓库添加sshkey

 首先得有github账号吧,本地Git仓库和github仓库之间的传输是通过SSH加密的,在联系本地与远程仓库前,还需要进行一些设置。

1、使用Git Bash生成公、私密钥

查看本用户目录是否存在.ssh目录以及.ssh目录是否具有id_rsa和id_rea.pub文件,如果有说明生成过密钥。

首先应该需要设置用户名、用户邮箱,然后执行以下命令生成密钥(执行过程中提示输入密码直接回车即可)

ssh-keygen -t rsa

执行成功后,就会在用户目录下生成.ssh/id_rsa文件和.ssh/id_rsa.pub文件。

可通过以下命令查看密钥:

cat ~/.ssh/id_rsa

cat ~/.ssh/id_rsa.pub

2、添加SSH key

首先登陆github,然后Settings->SSH and GPG keys->New SSH key,将上一步生成的公钥拷贝到github,然后保存就可以正常pull、push代码了。

初始化仓库有两种方式,一种在远程创建仓库,然后clone到本地;另一种是将本地已有的项目推到远程仓库。

2、Git使用说明

1、Git之stage、unstage

未被Git跟踪的状态为unstage状态

已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态

untrack files是指尚未被git所管理的文件;

changed but not updated是指文件被git管理,并且发生了改变,但改动还没被git管理;

这两种状态,都可以看成是改动还没被git管理的状态,我们这里称非stage状态。

changes to be commited是指进入stage状态的文件,可以被提交,stage是commit和未管理之间的一个状态,也有别名叫index状态,也就是git已经管理了这些改动,但是还没完成提交。

Changes not staged for commit,指一种文件已被修改但无法被提交的状态,可以通过命令git add fileName来添加到可提交状态。当然,反过来考虑,已经处于可提交状态的文件也可以通过命令git restore fileName来使其处于不可提交状态(测试了,这条命令貌似不起作用(会变成deleted),why?不过可以使用git reset HEAD来清空缓存区)。

Changes to be committed

Changes not staged for commit

Untracked files

2、Git删除缓存区文件

1、如果一个文件已经add到暂存区,还没有 commit,此时如果不想要这个文件了,有三种方法:

1、用版本库内容清空暂存区,git reset HEAD 回退到当前版本(在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100);

2、使用 git rm --cached 文件名 ,可以从缓存区移除文件,使该文件变为未跟踪的状态,同时下次提交时从本地库中删除,下次提交时该文件在本地以及远程都会被删除。

3、使用 git rm --f “文件路径”,不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。

 

 3、Git强制覆盖本地版本文件(与Git远程仓库保持一致)

依次执行:

git fetch --all ---> git reset --hard origin/master ---> git pull

4、Git查看分支

git branch 查看本地分支

git branch -r 查看远程分支

git branch -a 查看所有分支

5、Git分支

git checkout master 切换分支,该分支本地已存在

git checkout -b dev origin/dev 切换分支到dev,该分支本地不存在

git branch test 创建新分支

git branch -d test 删除分支

git checkout -b dev 创建并切换到新分支

*参考*

https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6

https://www.liaoxuefeng.com/wiki/896043488029600/900003767775424

GIT -初始化文件,跟踪文件状态,设置忽略文件,提交文件,添加文件描述 https://blog.csdn.net/xys2333/article/details/89189870 

克隆远程代码到本地: git clone 网址

pull代码到本地(master分支):git pull origin master

pull代码到本地(develop分支):git pull origin develop

提交到本地仓库:git commit -m "提示信息"

提交本地代码到托管仓库:git push origin master

提交本地代码到分支:git push origin 分支

查看用户名 git config user.name

查看用户邮箱 git config user.email

添加用户名:git config --global user.name "Your Name"

添加邮箱:git config --global user.email "you@example.com"

查看状态信息:git status

切换分支:

添加文件到缓存区:git add 文件名(或文件夹名)

1.git强制覆盖本地文件(与git远程仓库保持一致):
git fetch --all
git reset --hard origin/master
git pull
git强制覆盖本地命令(单条执行):
git fetch --all && git reset --hard origin/master && git pull

2.git强制推送本地代码到远程仓库
切换到对应的要上传文件的文件夹下面执行命令
git push -u origin develop

删除版本文件及文件夹:

git rm -r -n "bin/" //-n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
git rm -r "bin/" //最终执行命令.
git commit -m" remove bin folder all file out of control" //提交
git push origin master //提交到远程服务器

push时记住账号密码:

文件默认路径为C:Usersadmin.gitconfig

添加内容[credential] helper = store

参考:

使用git bash提交代码到github托管 https://www.cnblogs.com/tuanz/p/11204933.html

gitbash的使用方法 https://www.cnblogs.com/geili/p/11261726.html

Git Bash使用详细教程 https://www.cnblogs.com/ccw869476711/p/10818131.html

Git下载安装及设置详细教程 https://www.jianshu.com/p/a152f82c5e4a

原文地址:https://www.cnblogs.com/hai-feng/p/12181613.html