1. cd XXX      进入文件夹

cd ../         返回上层目录会出现>回车即可
也可以在本地文件夹中右键选中git Bash here直接创建本地仓库并打开至当前文件夹

mkdir xxx 创建文件夹

dir               当前文件夹下的所有文件包括文件夹和文本

git上传

进入git bash

git config user.name  查看git本地仓库的用户名

git config user.email   查看git本地仓库的邮箱名
cd ~/.ssh 按enter进入后可修改你的用户名和邮箱$ git config --global user.name "XXX"和$ git config --global user.email "XXX@XXX"   
mkdir XXX.yyy   创建你的文件夹或者是文本(yyy = txt 、yyy = file 、yyy = html等)或者直接有cd切换到你的项目中去,
git init        初始化本文件生成本地仓库(版本库) 和暂存区,即.git,
git add XXX.yyy            将本地工作区间的文件添加到本地仓库
git status   查看本地仓库的状态。
pwd  查看当前路径
git diff            如果修改了你的项目或者文件可以看出那些做出了修改
git commit -m "注释文件内容"           确定后可以将项目或者文件添加到暂存区
git ls-files        查看暂存区有那些文件
git remote add origin git@git.yiako.com:chenqianchong/helloworld.git   指定上传到远程库
git push -u origin master      推送到主分支
cat XXX       可以查看你的文本的具体内容

git下载
登陆gitlib fork文件到你的远程库
进入git bash
 ssh-keygen -t rsa      生成公钥和私钥根据提示进入~/.ssh/id_rsa.pub复制公钥并将其复制到setting-->ssh keys将其添加上去
git clone <forked-repo-url>      <forked-repo-url>是远程库fork项目clone下的url地址clone远程仓库的文件会自动保存在你的当前本地仓库

查看远程仓库地址
git remote     列出已经存在的远程分支
git remote -v/--verbose    列出详细信息,在每一个名字后面列出其远程URL
git remote add upstream url    添加远程仓库 upstream代表是上游URL是clone的地址如$ git remote add upstream git@git.yiako.com:XXX/testgit.git
git branch -a      查看本地分支和远程库分支是否一致如果不一致切换分支到远程库分支git status查看状态将远程库clone下来的文件做出修改后添加到暂存区
git commit -m "one"    提交到本地仓库
git log    按照提交的时间列出所有的更新,最近的更新排在最上面git status查看状态
git fetch upstream    将远程upstream主机更新,全部取回本地
git fetch origin master           如将远程仓库的master分支下载到本地当前branch中
git rebase upstream/develop    git-rebase命令主要用在从上游分支获取最新commit信息,并有机的将当前分支和上游分支进行合并将上游的upstream分支合并到develop
git push origin develop     将你的分支推送到远程仓库origin     

git remote -v   可以查看远程仓库的地址
 查询根目录的所有文件和文件夹
dir    可以查看当前根目录下的所有文件和文本当前根目录指相对.git的本地仓库目录
dir test 指定查询test文件夹下的所有文件和文本

分支操作
git branch    查看所有本地分支
git branch XXX   创建本地分支XXX
git checkout XXX   切换到XXX分区
git checkout -b XXX   将上述两步骤合并到此一步
git branch -r      查看所有的远程分支
git branch -a      查看所有的分支,包括本地分支和远程分支
git branch -d XXX     删除XXX分支
git merge <分支名>   合并该分支到当前分支,根据分支名可以合并本地分支和远程分支
git rebase <分支名>   作用和git merge <分支名>同

git vi操作
touch+文件名,直接创建一个文件(如:touch a.html 注:后缀必须加)
vi+文件名,新建一个文件并进入编辑状态(如果文件已经存在,则直接进入编辑状态 必须加后缀)
进人vi模式后按i键或者c键进入insert模式编写文本
退出的话先按  ESC键退出编辑在连续再连续按两下大写Z字母返回命令行模式
或者按键ESC退出insert模式,然后按shift+:(shift+冒号建)然后输入wq,wq表示保存并退出,如果
只是按键q,则是只退出不保存。按enter键退出界面,再次查看内容。
cat+文本(必须带后缀)
如果只是想保存文件,则按ESC退出insert并且按shift+:进入只按W键按enter回车不会退出vi编辑器并会保存你的文本修改结果,
如果想放弃你的修改,放弃所有的文本修改并退出vi编辑器,按ESC键并按shift+:键入q!并按回车。
如果你想放弃所有的修改,并不退出vi,按ESC键并按shift+:键入e!并按回车

git操作之拉取远程项目到本地

  1. 登录gitlib fork一份你需要的远程分支文件clone下ssh url地址                                                                                                      2,找到工作文件夹打开本地git bash打开后输入git clone XXX  注意XXX是你fork的ssh url地址也就是你下游的地址                      3,git remote -v 查看远程仓库下游的地址是否正确                                                                                                                          4,git remote add upstream XXXXX     注意XXXXX是上游的ssh url地址,也就是你去fork的那一份地址                                        5,git remote -v 查看远程仓库和本地仓库是否正确                                                                                                                          6,git branch -a 查看本地分支和远程分支是否一致若不一致git checkout X 进行切换分支

git操作之项目提交gitlib

1、git status 查看状态
2、git add 添加自己更新添加的文件一般是src下的,与内容无关的不宜添加,我们可以快捷的双击选中滚轮加入空格隔开一次添加,无关的不要双击添加
3、git status 查看状态添加进去的变为绿色未添加进去显示为红色
4、git commit -m " "提交的注释,一般是做了什么修改的说明或者是提交的文件的说明
5、git status  查看状态,此时绿色提交部分消失只剩下红色部分,git log查看日志未见异常查看状态git status正常进行下一步
6、git stash 将未提交部分红色的保存起来,git status 查看状态
7、git fetch upstream  拉取上游代码到本地,拉取后也是上游代码在本地也是暂存状态
8、git rebase upstream/test_tt合并上有代码到本地test_tt分支
9、git stash  pop 将第六步存起来的由暂存状态拿出来避免推送上去
10、git push origin test_tt 未发现问题推到下游test_tt分支test_tt为分支名
11、登录gitlib找到自己fork的项目点击Merge Requests ->New merge request ->进入后选择test_tt分支上游分支和下游分支选择相同时确认后点击
Compare braches and continue
12、提交之前插看change检查下代码的修改过程,谨防出错。
13、点击提交

14、完成后继续本地git status 检查是否有无意中添加的,如果有git reset XXX捞出来,避免下一次提交

冲突处理

1、git rebase XXX 如果重现冲突,git rebase XXX之后就能查看时那些冲突,本地修改冲突文件,分为两部分,上半部分是上游代码和你下半部分代码冲突,看情况保留该保留的部分。git status查看状态,此时解决完冲突的部分是红色的。

2、git add XXX将修改过的代码,git add 重新添加到git,XXX代表冲突的部分

3、git status 查看冲突部分是否添加成功

4、git rebase  --continue解决冲突后继续提交代码

5、git push origin master -f强行推送到上游。

git stash 存储

git stash save "添加备注信息"也可直接git stash   

git stash save "XXX" 是对保存内容加个备注方便检索查找,git stash 默认存储存储的第一个是stash@{0}以此类推查找不是多方便

git stash list 查看具体存储的文件内容,是查看所有的文件

git stash show显示做了哪些改动,使用git stash show stash@{$num}可以显示某一个存储文件的改动

git stash show -p 默认显示第一个存储的改动,可使用git stash show stash@{$num} -p查看具体存储文件的改动

git stash apply应用某个存储,默认应用第一个存储,若想应用其他存储版本使用git stash apply stash@{$num}

git stash pop 命令恢复之前缓存的工作目录,将缓存栈中对应的stash版本删除,并将对应的修改应用到当前的工作目录下,默认第一个stash存储版本,可使用git stash pop stash@{$num}恢复对应之前缓存的工作目录,并将缓存栈中对应的版本删除。

git stash drop stash@{$num} 丢弃stash@{$num}的存储,并从裂变中删除该存储,

git stash clear  删除stash队列中缓存的所有stash.

git stash 小坑慎入git stash save -a 不仅会将你新加入的代码放入暂存区,还包括忽略的文件也存储下来,-a表示all files当然你可以使用git stash save -u不会影响被忽略文件-u表示 untracked files.代表未跟踪当然你也可以不必使用这两个条件,避免造成不必要的麻烦

解决方案:

第一步
使用如下命令找到所有提交记录
git log --graph --all --decorate --oneline

找到你git stash save 那次提交的<sha> 

第二步
git checkout <sha>

第三步
git reset HEAD~1

第四步
git stash -u 

原文连接:https://www.jianshu.com/p/4a4d7d526083

 


 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐