示例目录结构
|–新建文件夹1
|–text1.txt
|–text2.txt
|–form.cs
克隆到本地
git clone [-b 分支名] 项目地址
ge: git clone -b USEDBK_DEV https://rdc.hand-china.com/gitlab/17823/NewDemo.git
添加指定文件到暂存区
git add [file1] [file2] …
ge: git add text1.txt text2.txt form.cs
添加指定目录到暂存区,包括子目录
git add [dir]
ge: git add 新建文件夹1
添加当前目录的所有文件到暂存区
git add .
ge: git add .
删除工作区文件,并且将这次删除放入暂存区
git rm [file1] [file2] …
ge: git rm text1.txt text2.txt
改名文件,并且将这个改名放入暂存区
git mv [file-original] [file-renamed]
ge: git mv text1.txt text3.txt
提交暂存区到仓库区
git commit -m [message]
ge: git commit -m ‘提交注释’
提交暂存区的指定文件到仓库区
git commit [file1] [file2] … -m [message]
ge: git commit text2.txt text3.txt -m ‘text2/3提交注释’
取回远程仓库的变化,并与本地分支合并
git pull
ge: git pull
推送到远程仓库
git push
ge: git push
切换分支
git checkout 分支名
ge: git checkout dev
显示有变更的文件
git status
ge: git status
显示暂存区和工作区的代码差异
git diff
ge: git diff
重置暂存区与工作区,与上一次commit保持一致
git reset --hard
ge: git reset --hard
恢复暂存区的指定文件到工作区
git checkout [file]
ge: git checkout text1.txt
恢复暂存区的所有文件到工作区
git checkout .
ge: git checkout .
远程仓库恢复至历史某一版本
1、首先找到对应的版本号[3d066a06e7977b2e9f1acbe02abfc476f1e055c0]
2、恢复到指定版本:git reset --hard 3d066a06e7977b2e9f1acbe02abfc476f1e055c0
3、强制push:git push -f origin master
将某一分支的提交复制到另一分支
1、首先找到源分支的commit版本号(需要按提交顺序复制):
C1[a7c1bedeeb0a234804525bee27329465f9a0e333]
C2[94d6a63cb0ae069320259c5677bb6ca3408de444]
2、本地切换到目标分支
3、按源分支提交顺序执行cherry-pick命令:
git cherry-pick a7c1bedeeb0a234804525bee27329465f9a0e333
git cherry-pick 94d6a63cb0ae069320259c5677bb6ca3408de444
4、检查当前分支Git记录,是否有问题,若无问题则push
跨仓库同步commit(将B仓库commit同步到A仓库)
1、记录要同步的B仓库中的commit版本号(需要按提交顺序复制):
C1[a7c1bedeeb0a234804525bee27329465f9a0e333]
C2[94d6a63cb0ae069320259c5677bb6ca3408de444]
2、本地打开到A仓库代码仓
3、在当前A仓库创建B仓库本地仓
git remote add [shortname] [gitUrl]:将远程仓库唯一的URL[gitUrl]映射成为在本地仓库中对远程仓库起的别名[shortname]。(注意:该命令只负责映射!它不会产生下载或上传的流量!只有git clone、git fetch、git pull等才产生下载或上传的流量!)
例如:git remote add otherOrigin https://xxx/xxx.git
4、拉取代码
git fetch otherOrigin
5、更新同步指定commit版本号C1、C2,注意如果多个commit则按源仓库分支提交顺序执行cherry-pick命令:
git cherry-pick a7c1bedeeb0a234804525bee27329465f9a0e333
git cherry-pick 94d6a63cb0ae069320259c5677bb6ca3408de444
6、检查当前分支Git记录,是否有问题,若无问题则push